[转载]copy某目錄下的所有的目錄和文件到目的目錄(目錄數據備份)

it2022-05-05  102

最近工作需要得寫一個目錄數據備份的實現 我寫了2個靜態方法. 方法1: 功能:copy某目錄下的所有的目錄和文件到目的目錄,即創建某文件夾的副本 思路:先copy目錄下的所有文件,再遞歸循環目錄 參數1:要copy的目錄名(原目錄),要是此文件夾不存在會拋出異常 參數2:目的目錄名,要是此文件夾不存在程序會自己建立一個  1           static   void   directoryCopy( string  sourcePath, string  destPath)  2          {  3               if  (  ! Directory.Exists(sourcePath) )  4              {  5                   // 拋出異常  6                   throw   new  DirectoryNotFoundException( " 原路徑沒發現 " );  7              }  8   9               if  (  ! Directory.Exists(destPath) ) 10              { 11                   // 自己建立一個目的目錄 12                  Directory.CreateDirectory(destPath); 13              } 14  15              DirectoryInfo dir = new  DirectoryInfo(sourcePath); 16              DirectoryInfo[] dirs =  dir.GetDirectories(); 17                            18               // 先拷貝該目錄下的所有文件 19              copyFile(dir,destPath); 20  21               if  ( dirs.Length > 0  ) 22              { 23                   foreach (DirectoryInfo temDirectoryInfo  in  dirs) 24                  { 25                       string  sourceDirectoryFullName = temDirectoryInfo.FullName; 26                       string  destDirectoryFullName = sourceDirectoryFullName.Replace(sourcePath,destPath); 27                                           28                       if  (  ! Directory.Exists( destDirectoryFullName ) ) 29                      { 30                          Directory.CreateDirectory( destDirectoryFullName ); 31                      } 32                       33                       // 拷貝temDirectoryInfo下的所有文件 34                      copyFile(temDirectoryInfo,destDirectoryFullName); 35  36                       // 遞歸,訪問下一級目錄 37                      directoryCopy( sourceDirectoryFullName,destDirectoryFullName ); 38                  } 39              } 40          }

方法2:功能:copy某目錄下的所有文件 先得到原目錄下的所有文件信息數組,再利用循環依次copy 參數1:要copy的目錄(原目錄) 參數2:目的目錄名稱

 1           static   void  copyFile(DirectoryInfo path, string  destPath)  2          {  3               string  sourcePath = path.FullName;  4                5              FileInfo[] files = path.GetFiles();  6   7               foreach (FileInfo file  in  files)  8              {  9                   // 要copy的原文件全名 10                   string  sourceFileFullName = file.FullName;     11                   // 目的文件的全名 12                   string  destFileFullName = sourceFileFullName.Replace(sourcePath,destPath); 13                   // 開始copy文件                             14                  file.CopyTo( destFileFullName , true ); 15              } 16          }

調用directoryCopy(@"E:\Pc Drive",@"c:\tem\Pc Drive");實現E:\Pc Drive目錄中的數據備份

转载于:https://www.cnblogs.com/ljChen/archive/2005/11/19/280442.html


最新回复(0)