2011-03-04 328 views

回答

5

這個建議立即進行刪除d做你需要的東西:

string dirA = @"C:\"; 
string dirB = @"D:\"; 

string[] files = System.IO.Directory.GetFiles(dirA); 

foreach (string s in files) { 
    if (System.IO.Path.GetExtension(s).equals("bak")) { 
     System.IO.File.Copy(s, System.IO.Path.Combine(targetPath, fileName), true); 
    } 
} 
4

我不會給你完整的解決方案,但檢查出Directory.GetFiles(它採取搜索模式)和File.Copy

這兩種方法都是您需要的。

+0

OP可能希望File.Copy,因爲那是什麼在帖子中使用。 – Nate 2011-03-04 20:25:22

+0

@Nate當然,謝謝。 – alexn 2011-03-04 20:28:17

+1

不知道爲什麼這個帖子在OP明顯要求解決方案時很快就得到了提升,而不是爲了參考。有時候我認爲這是建立在「富裕得到更豐富」的基礎上的。 – FreeAsInBeer 2011-03-04 20:29:56

1

有兩種方式,純C#的方式:

var items = System.IO.Directory.GetFiles("Directory A", "*.bak", System.IO.SearchOption.TopDirectoryOnly); 
foreach(String filePath in items) 
{ 
    var newFile = System.IO.Path.Combine("Directory B", System.IO.Path.GetFileName(filePath)); 
    System.IO.File.Copy(filePath, newFile); 
} 

robocopy方式:

var psi = new System.Diagnostics.ProcessStartInfo(); 
psi.FileName = @"C:\windows\system32\robocopy.exe"; 
psi.Arguments = "Directory A Directory B *.bak"; 
System.Diagnostics.Process.Start(psi); 
相關問題