2014-03-31 30 views
0

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

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方法。

+0

如果你想保留文件夹结构,MyFile.txt和MyChildFolder是否在同一级别,不应该将'MyChildFolder'放在'DestinationFolder'里面? – Herdo

+0

是的,我只是修正了它是一个错字 – Raffaeu

回答

0

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

我可以很容易地以这种方式使用XCOPY:

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

,它会简单地复制一切,并保留文件夹结构。

相关问题