C#使用模式复制文件并保留结构

时间:2014-03-31 09:59:14

标签: c# io file-copying

我正在使用Workflow Foundation代码活动将一组文件使用通配符模式从一个文件夹复制到另一个文件夹。我必须保留文件夹结构,例如,在这种情况下:

C:\
  - MyFile.txt
  - MyChildFolder
    - MyFile.txt

应该以这种方式复制:

C:\
  - DestinationFolder
    - MyFile.txt
    - MyChildFolder
      - MyFile.txt

目前我正在使用以下代码:

// copy using the pattern
var filesToCopy = sourceDirectoryInfo.GetFiles(pattern, SearchOption.AllDirectories);
filesToCopy.ToList().ForEach(fileToCopy =>
{

    File.Copy(fileToCopy.FullName, Path.Combine(destinationDirectoryInfo.FullName, fileToCopy.Name), true);
});

所以这里发生的是我最终得到了根目标目录中复制的所有文件。不幸的是,我得到了一系列文件,所以我根本无法使用CopyFolder方法。

1 个答案:

答案 0 :(得分:0)

我通过从我的代码中调用xcopy命令解决了这个问题。

我可以这样轻松地使用xcopy:

xcopy "source\*.txt" "destination" /e

它只会复制所有内容并保留文件夹结构。