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

C# 将一个文件中的所有文件/子目录复制到另一个文件,c#,C#,我正在尝试将文件夹从源复制到目标。源文件夹和目标文件夹将位于同一目录中。 每个副本的文件夹结构都会有所不同,因此需要通用。 该文件夹将包含需要复制的文件和子目录。 因此,不管一个文件夹包含什么内容,都应该将其全部内容复制到另一个文件夹中 我希望这不是太夸张。但这只是我要寻找的一个简单例子: 源文件夹路径:c:\directories\versions\11.0.2 目标文件夹路径:c:\directories\versions\11.0.3 将所有11.0.2内容复制到11.0.3中 以下是我目

我正在尝试将文件夹从源复制到目标。源文件夹和目标文件夹将位于同一目录中。 每个副本的文件夹结构都会有所不同,因此需要通用。 该文件夹将包含需要复制的文件和子目录。 因此,不管一个文件夹包含什么内容,都应该将其全部内容复制到另一个文件夹中

我希望这不是太夸张。但这只是我要寻找的一个简单例子: 源文件夹路径: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));
有没有办法做到这一点?

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

你也可以看看

异步操作使您能够执行资源密集型I/O 不阻塞主线程的操作。这场演出 在Windows应用商店应用程序或 耗时的流操作可能会阻止UI的桌面应用程序 线程并使你的应用程序看起来好像不工作


你说“那不有效”是什么意思?你所没有的在什么方面是有效的?它现在做什么?复制:@Zeph和Michelle的可能复制不起作用的是一些子目录包含它们自己的子目录。但是,如果它只是在子目录中保存文件,它就可以工作。但是在一个目录的子目录中复制子目录(这里有一点inception)是行不通的。