[英]Copy All Files and Subfolders from Directory A to Director B on Start
[英]how to copy all *.bak files from Directory A to Directory B?
如何將所有*.bak
文件從Directory A
復制到Directory B
?
這應該可以滿足您的需求:
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);
}
}
我不會為您提供完整的解決方案,但請查看Directory.GetFiles (采用搜索模式)和File.Copy 。
這兩種方法是您所需要的。
有兩種方法,純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);
使用此鏈接http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspx
執行
xcopy /y /f PathOfA\*.bak PathOfB\
我對以上建議的改進:
public static void CopyFilesWithExtension(string src, string dst, string extension)
{
string[] files = System.IO.Directory.GetFiles(src);
foreach (string s in files)
{
if (System.IO.Path.GetExtension(s).Equals(extension))
{
var filename = System.IO.Path.GetFileName(s);
System.IO.File.Copy(s, System.IO.Path.Combine(dst, filename));
}
}
}
用法:
Utils.CopyFilesWithExtension(@"C:\src_folder",@"C:\dst_folder",".csv");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.