如何将所有* .bak文件从目录A复制到目录B?

时间:2011-03-04 20:18:15

标签: c# winforms

如何将所有*.bak个文件从Directory A复制到Directory B

5 个答案:

答案 0 :(得分:5)

这应该做你需要的:

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);
    }
}

答案 1 :(得分:4)

我不打算给你完整的解决方案,但请查看Directory.GetFiles(采用搜索模式)和File.Copy

这两种方法都是你需要的。

答案 2 :(得分:2)

有两种方式,纯粹的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);

答案 3 :(得分:0)

使用此链接http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspx

执行

xcopy /y /f PathOfA\*.bak PathOfB\

答案 4 :(得分:0)

我对以上建议的改进:

inputs["my_inputs"] = transformed_matrix_to_proto(example, 2,3);

stub_->Predict(&context, predictRequest, &response);

用法:

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));
         }
    }
}