2013-08-19 81 views
-1

我试图将文件夹从源复制到目标。源文件夹和目标文件夹将位于相同的目录中。 该文件夹的结构会改变每个副本,因此它需要是通用的。 该文件夹将包含需要复制的文件和子目录。 因此,一个文件夹的所有内容都应该被复制,而不管它包含到另一个文件夹中。将文件中的所有文件/子目录复制到另一个

我希望这不是太大。但正好与我正在寻找一个简单的例子: 源文件夹路径:C:\目录\版本\ 11.0.2 目标文件夹路径:C:\目录\版本\ 11.0.3

拷贝所有的11.0.2内容到11.0.3

这里是我的代码目前有没有效果:

//Create all of the directories 
foreach (string dirPath in Directory.GetDirectories(sourceDir, "*", 
SearchOption.AllDirectories)) 
Directory.CreateDirectory(dirPath.Replace(sourceDir, targetDir)); 

//Copy all the files 
foreach (string newPath in Directory.GetFiles(sourceDir, "*.*", 
SearchOption.AllDirectories)) 
File.Copy(newPath, newPath.Replace(sourceDir, targetDir)); 

如何做到这一点任何想法?

+0

当你说“那不是有效的”时,你是什么意思? – Zeph

+0

你用什么方式没有效?它目前做了什么? – Michelle

+0

重复:http://stackoverflow.com/questions/7146021/copy-all-files-in-directory – rie819

回答

0

Well this is the MSDN example

这个例子演示了如何使用I/O类目录的 内容同步复制到其他位置。在这个例子中, 用户可以指定是否也复制子目录。如果 子目录被复制,则此示例中的方法递归地通过 通过在每个后续子目录上调用自身来复制它们,直到 没有更多副本。

你也可以看看

Asynchronous File I/O

异步操作使您无需阻塞主线程中执行资源密集的I/O操作 。在Windows应用程序应用程序或 桌面应用程序中,此性能 的考虑尤其重要,其中耗时的流操作可能会阻塞UI 线程并使您的应用程序显示为不工作。

相关问题