2011-03-04 129 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); 
相关问题