我想要的是我的USB驅動器I:/
上的一些文件,目錄和子目錄的精確副本,並希望他們在C:/backup
(例如)如何將文件從一個磁盤複製到具有相同文件夾結構的另一個位置?
我的USB驅動器具有以下結構:
(只知道,這是一個例子,我的驅動器有多個文件,目錄和子目錄)
課程/ data_structures/db.sql
遊戲/ PC/PC-的Game.exe
考試/ exam01.doc
好了,我不知道如何開始,但我的第一個想法是讓所有的files
這樣做:
string[] files = Directory.GetFiles("I:");
下一步可能是做一個循環,並使用File.Copy
指定目標路徑:
string destinationPath = @"C:/backup";
foreach (string file in files)
{
File.Copy(file, destinationPath + "\\" + Path.GetFileName(file), true);
}
此時一切工作不錯,但不是因爲我想造成這種不復制的文件夾結構。也有一些錯誤發生類似下面...
- 第一個是因爲我的電腦配置顯示隱藏文件的每個文件夾和我的USB有沒有隱藏了一個
AUTORUN.INF
隱藏文件和環路試圖複製並在此過程生成此異常:
訪問路徑「AUTORUN.INF」被拒絕。
- 第二個發生在某些路徑太長,這會產生以下例外:
指定的路徑,文件名,或兩者均爲太長。完整 限定文件名必須少於260個字符,並且 目錄名稱必須少於248個字符。
所以,我不知道如何實現這一點,並驗證錯誤的每個更多鈔票的情況。我想知道是否有另一種方式來做到這一點,如何(也許有些庫)或一些更簡單的像與以下結構的實現方法:
File.CopyDrive(driveLetter, destinationFolder)
(VB。NET答案也會被接受)。
在此先感謝。