将文件中的所有文件/子目录复制到另一个文件

时间:2013-08-19 18:22:08

标签: c#

我正在尝试将文件夹从源复制到目标。源和目标文件夹将位于同一目录中。 文件夹的结构会因每个副本而异,因此它必须是通用的。 该文件夹将包含需要复制的文件和子目录。 因此,无论它包含在另一个文件夹中,都应该复制一个文件夹的所有内容。

我希望这不是太过分了。但只是我正在寻找的一个简单的例子: 源文件夹路径:c:\ directories \ versions \ 11.0.2 目标文件夹路径:c:\ directories \ versions \ 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));

有关如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

Well this is the MSDN example

  

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

您还可以查看

Asynchronous File I/O

  

异步操作使您可以执行资源密集型I / O.   操作没有阻塞主线程。这种表现   在Windows应用商店应用中,考虑因素尤其重要   桌面应用程序,其中耗时的流操作可以阻止UI   线程并使您的应用看起来好像不起作用。