本博推荐文章快速导航: Sql Server2005 Transact-SQL 新兵器学习 MCAD学习 代码阅读总结 ASP.NET状态管理 DB(数据库) WAP WinForm Flex

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目錄中的數據備份


 

 

posted @ 2005-11-01 21:07 aierong 阅读(2357) 评论(19)  编辑 收藏 网摘 所属分类: .Net Framework

  回复  引用    
#1楼 2005-11-01 21:30 | exhjw [未注册用户]
不知发这种文章有什么意义》
  回复  引用  查看    
#2楼 2005-11-01 22:07 | 粗蚊      
这种基础性的东西就不要发到广州俱乐部的首页了吧?
  回复  引用  查看    
#3楼 2005-11-01 22:21 | 补丁      
这...这不是博客园的首页么...太那啥了...
  回复  引用  查看    
#4楼 2005-11-02 07:53 | 深渊野鱼      
小黑屋的主人快来啊,又找到一个了。
  回复  引用    
#5楼 2005-11-02 13:14 | dominic [未注册用户]
第二种方法更占用内存,做目录备份用得上使用。net么直接用api不是更快。
  回复  引用    
#6楼 2005-12-05 09:28 | 贺 [未注册用户]
我觉得这篇文章写的很好呀
  回复  引用  查看    
#7楼 [楼主]2005-12-11 21:12 | aierong      
谢谢楼上的鼓励
  回复  引用    
#8楼 2005-12-21 23:53 | wow gold [未注册用户]
([url=http://www.sfwre.com]wow gold[/url])
([url=http://www.wowgoldue.com]wow gold[/url])([url=http://zxfan1898.bokee.com]wow gold[/url])
  回复  引用  查看    
#9楼 2006-09-11 17:21 | caoruijun      
那如何在程序中设置权限呢
  回复  引用  查看    
#10楼 [楼主]2006-09-19 23:31 | aierong      
ok
  回复  引用    
#11楼 2007-05-25 16:21 | innicc [未注册用户]
<a href=http://www.innicc.com>Guild Wars Gold</a>
<a href=http://www.innicc.com>World of Warcraftz Gold</a>
  回复  引用    
#12楼 2007-06-01 14:57 | blue [未注册用户]
东东很好,正是我想要的
  回复  引用    
#13楼 2007-06-18 17:37 | yk [未注册用户]
写的很好,感谢楼主。。。继续努力
  回复  引用    
#14楼 2007-09-07 11:26 | tz [未注册用户]
非常好!感谢分享!
  回复  引用    
#15楼 2007-10-31 19:11 | 同声传译设备 [未注册用户]
路过
  回复  引用    
#16楼 2007-10-31 19:11 | 论文发表 [未注册用户]
:)
  回复  引用    
#17楼 2007-10-31 19:17 | 钢管 [未注册用户]
好东西!
  回复  引用    
#18楼 2007-11-03 18:19 | Health info site [未注册用户]
Erectile Dysfunction is regarded as the most prevalent male sexual disorder and Viagra, the Pfizer manufactured medication is considered to be the most effective treatment of erectile dysfunction by physicians as well as patients worldwide. People suffering from erectile dysfunction instantly opt for Viagra and Viagra related information online as well as in various offline sources in order to start off their anti-impotency treatment successfully. If you are an erectile dysfunction patient, you can seek out Viagra details on several authentic online sources and more especially, the http://www.buy-viagra-with-us.com/sitemap.html sitemap section at buy-Viagra-with-us.com contains informative Viagra links that would provide you significant Viagra details and ensure your successful treatment with the drug.
  回复  引用  查看    
#19楼 [楼主]2008-11-08 08:50 | aierong      
@caoruijun

请问您指的是什么权限?




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-11-08 08:49 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:


相关搜索:
文件 目录数据备份 copy 目录

相关链接: