可能重複:
Best way to copy the entire contents of a directory in C#如何在.NET中複製文件夾和所有子文件夾和文件?
我想與它的所有子文件夾和文件從一個位置複製.NET夾到另一個。什麼是最好的方法來做到這一點?
我在System.IO.File類中看到Copy方法,但想知道是否有比搜索目錄樹更簡單,更好或更快的方法。
可能重複:
Best way to copy the entire contents of a directory in C#如何在.NET中複製文件夾和所有子文件夾和文件?
我想與它的所有子文件夾和文件從一個位置複製.NET夾到另一個。什麼是最好的方法來做到這一點?
我在System.IO.File類中看到Copy方法,但想知道是否有比搜索目錄樹更簡單,更好或更快的方法。
那麼,有史蒂夫引用的VisualBasic.dll實現,這裏是我用過的東西。
private static void CopyDirectory(string sourcePath, string destPath)
{
if (!Directory.Exists(destPath))
{
Directory.CreateDirectory(destPath);
}
foreach (string file in Directory.GetFiles(sourcePath))
{
string dest = Path.Combine(destPath, Path.GetFileName(file));
File.Copy(file, dest);
}
foreach (string folder in Directory.GetDirectories(sourcePath))
{
string dest = Path.Combine(destPath, Path.GetFileName(folder));
CopyDirectory(folder, dest);
}
}
如果你沒有得到更好的...也許使用Process.Start
來觸發robocopy.exe
?
與Process.Start一起運行時,Robocopy不會正確解析引號,因此您的源/目標路徑不得包含空格。如果他們這樣做,你必須使用8dot3文件名。 Robocopy似乎正確接受報價的唯一時間來自命令行或BAT文件。 – Brain2000 2011-12-02 12:35:52
米哈爾塔拉加引用了他的post如下:
但是,基於File.Copy()
和Directory.CreateDirectory()
的遞歸實現應該滿足最基本的需求。
http://xneuron.wordpress.com/2007/04/12/copy-directory-and-its-content-to-another-directory-in-c/可能會對你有所幫助;它顯示了一個簡單的遞歸方法 – 2009-07-01 00:03:03
我期待在需要對文件系統執行操作時,因爲我有一個合法的藉口來使用遞歸! – mmcdole 2009-07-01 00:46:46