// ====================================================== // 實現一個靜態方法將指定文件夾下面的所有內容copy到目標文件夾下面 // 如果目標文件夾為只讀屬性就會報錯。 // April 18April2005 In STU // ====================================================== public static void CopyDir(string srcPath,string aimPath) { try { // 檢查目標目錄是否以目錄分割字符結束如果不是則添加之 if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; // 判斷目標目錄是否存在如果不存在則新建之 if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath); // 得到源目錄的文件列表,該裡面是包含文件以及目錄路徑的一個數組 // 如果你指向copy目標文件下面的文件而不包含目錄請使用下面的方法 // string[] fileList = Directory.GetFiles(srcPath); string[] fileList = Directory.GetFileSystemEntries(srcPath); // 遍歷所有的文件和目錄 foreach(string file in fileList) { // 先當作目錄處理如果存在這個目錄就遞歸Copy該目錄下面的文件 if(Directory.Exists(file)) CopyDir(file,aimPath+Path.GetFileName(file)); // 否則直接Copy文件 else File.Copy(file,aimPath+Path.GetFileName(file),true); } } catch (Exception e) { MessageBox.Show (e.ToString()); } }
// ====================================================== // 實現一個靜態方法將指定文件夾下面的所有內容Detele // 測試的時候要小心操作,刪除之後無法恢復。 // April 18April2005 In STU // ====================================================== public static void DeleteDir(string aimPath) { try { // 檢查目標目錄是否以目錄分割字符結束如果不是則添加之 if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; // 得到源目錄的文件列表,該裡面是包含文件以及目錄路徑的一個數組 // 如果你指向Delete目標文件下面的文件而不包含目錄請使用下面的方法 // string[] fileList = Directory.GetFiles(aimPath); string[] fileList = Directory.GetFileSystemEntries(aimPath); // 遍歷所有的文件和目錄 foreach(string file in fileList) { // 先當作目錄處理如果存在這個目錄就遞歸Delete該目錄下面的文件 if(Directory.Exists(file)) { DeleteDir(aimPath+Path.GetFileName(file)); } // 否則直接Delete文件 else { File.Delete (aimPath+Path.GetFileName(file)); } } //刪除文件夾 System.IO .Directory .Delete (aimPath,true); } catch (Exception e) { MessageBox.Show (e.ToString()); } }
|