0
我想复制一个目录到另一个路径。
我发现这个方法,但它不会复制它里面的目录,只有子目录和文件:复制目录与所有文件和文件夹
string sourcedirectory = Environment.ExpandEnvironmentVariables("%AppData%\\Program");
foreach (string dirPath in Directory.GetDirectories(sourcedirectory, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(dirPath.Replace(sourcedirectory, folderDialog.SelectedPath));
}
foreach (string newPath in Directory.GetFiles(sourcedirectory, "*.*", SearchOption.AllDirectories))
{
File.Copy(newPath, newPath.Replace(sourcedirectory, folderDialog.SelectedPath), true);
}
我怎样才能获得“程序”文件夹中的所有文件和子文件夹输出?
你是什么意思“,它不复制目录“?它明显地复制了目录本身 - 如果顶级目录不存在于输出中,它将无法复制子目录和文件。你的意思是它不复制顶级目录中的文件?看起来确实如此,只是扫描代码。 (就我个人而言,我更喜欢递归解决方案,而不是依赖'string.Replace()'或其他路径操作,但这里的代码看起来足够合理)。 – 2014-11-07 01:19:46
@PeterDuniho目录“程序”未创建,但其中的文件和文件夹被复制到目标。我需要在输出中获得“程序”目录。 – DotNet 2014-11-07 01:28:12
我相信这是重复的问题。 看看这个问题的MSDN解决方案(我认为这是最后一个) - 它应该复制所有,包括目录本身。 [Copy directory c#](http://stackoverflow.com/questions/58744/best-way-to-copy-the-entire-contents-of-a-directory-in-c-sharp) – 2014-11-07 01:39:35