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

最近工作需要得寫一個目錄數據備份的實現
我寫了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目錄中的數據備份


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值