`

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


 

 

分享到:
评论

相关推荐

    rsync命令教程 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

    表示将传输当前目录下所有以.c结尾的文件到机器servivcer的src目录下。如果文件已经存在于远程机器,则会调用远程更新协议来实现仅仅传输那些更新过的文件。 rsync -avz servivcer:src/bar /data/tmp 该命令则...

    Ghost 8.3 系统备份软件

     Ghost 还提供了一项硬盘备份功能,就是将整个硬盘的数据备份成一个文件保存在硬盘上(菜单 Local→Disk→To Image),然后就可以随时还原到其他硬盘或源硬盘上,这对安装多个系统很方便。使用方法与分区备份相似。...

    ORACLE 常用手册导入导出

    3. 复制 oracle目录中的oradata\oradb的子目录中的所有文件 到备份的目录中 冷恢复 1.将数据文件还原回所在位置 ,然后启动数据库 2.starup 进行热备份必须处于“归档日志模式下” 1.启动sqlplus ,并以...

    还原系统ghost的方法

    如“dst=1:1”表示将提取数据还原到主盘第一分区,“dst=2:2”表示还原到从盘第二分区,“dst=d:\ghost\sysbak.gh1”则表示将备份的数据保存为主盘第二分区ghost目录中的sysgbak.gho文件。 /fro:该参数意为在...

    网管教程 从入门到精通软件篇.txt

     注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。  bootcfg /scan 扫描用于 Windows 安装的所有磁盘并显示结果。  注意:这些结果被静态存储,并用于本次会话。如果在...

    Ghost 8.3 Enterprise

     Ghost 还提供了一项硬盘备份功能,就是将整个硬盘的数据备份成一个文件保存在硬盘上(菜单 Local→Disk→To Image),然后就可以随时还原到其他硬盘或源硬盘上,这对安装多个系统很方便。使用方法与分区备份相似。...

    文件服务器迁移多种方案.doc

    案例需求: 某公司有一台WinSrv2003域成员服务器作为文件服务器,上面共享了若干文件夹,并对不 同的group及user设置了权限。现在客户决定购买新的服务器替换之前旧的服务器,面临 着一个问题: 1, 如何使得这些共享...

    DOS 软盘+光盘+U盘+硬盘+NTFS 想拥有更强大的DOS功能??

    NTFS-可在DOS下读写NTFS分区的工具,对运行DOS版的杀毒软件和操作NTFS分区的数据都有实际用途,可执行文件:ntfspro.exe。(NTFS功能本启动盘已经包括)PQ805-最新的pqmagic的8.05版,DOS下分区的利器,支持200G...

    电脑高手必备 Windows系统35招实用技巧

    X:WindowsSystem32Dllcache目录下有此文件的备份。只要将此备份拷到 X:WindowsSystem32下替代带病毒的文件即可。做一张Windows 98启动盘,并 将Attrib.exe文件拷入软盘,此文件在装有Windows 98的机器上的 X:...

    UNIX 高级教程系统技术内幕

    8.2.1 文件和目录 8.2.2 文件属性 8.2.3 文件描述符 8.2.4 文件1/O 8.2.5 分散-聚集I/O(Scatter-Garther I/O) 8.2.6 文件加锁 8.3 文件系统 8.3.1 逻辑磁盘 8.4 特殊文件 8.4.1 符号链接 8.4.2 管道和FIFO 8.5 文件...

    HDClone Enterprise Edition 16x 6.0.6

    BitCopy专业版及更高版本|此功能也称为“裸金属复制”,它将源磁盘的所有扇区克隆到目标磁盘,而无论它们是否包含有效数据都没有区别。 2、后备 商店 此功能存储硬盘,SSD或其他磁盘(包括系统和数据分区)的总映像...

    计算机应用技术(实用手册)

    这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上的第一、第二根IDE数据线,一般来说靠近芯片的是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接的两个设备,大家知道每根数据线上可以接...

    u盘禁用开启工具

    进入WINDOWS系统目录,找到X:\Windows\inf,这里说明一下,USB存储设备的作用文件有两个,分别是usbstor.inf和usbstor.pnf,因为后续可能需要重新打开USB功能,所以不要删除它,建议拷贝到其他位置,当然你要暴力...

    ELDK使用与开发手册

    你也可以把ELDK安装到任何空目录下,这么做的唯一条件是你有那个目录的写和执行权限。安装过程并不需要超级用户的特权。由安装时的参数决定安装几个目标组件集合。ELDT包是肯定会安装的。 $ export CROSS_COMPILE=...

    (重要)AIX command 使用总结.txt

    kmtune //HP-UX下用kmtune>kernel.txt将内核参数信息导出到kernel.txt文件中配置文件为: /usr/conf/master.d/core-hpux ##操作系统 //操作系统版本 uname -a //操作系统补丁 instfix -i|grep ML //获取硬件信息 ...

    测试培训教材

    2.安装成功后,打开编制好的文件,选中所有要导入的需求记录,注意:只选数据. Export To Quality 3.点击“工具” Center 4.输入QC的URL地址 5.输入项目管理员的名称和密码 6.选择要导入需求的域和项目 7.选择第一...

    C/C++笔试题(附答案,华为面试题系列)

    该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesock et()关闭套接字。 26.动态连接库的两种方式? 答:调用一个DLL中的函数有两种方法: 1.载入时动态链接(load-time dynamic linking)...

    华为编程开发规范与案例

    话单池的一个备份指针Pool_head_1和中继计次表的头指针重合,影响到第一个中继计次表的计费。 思考与启示: 随机值的背后往往隐藏着指针问题,两块内存缓冲区的交界处比较容易出现问题,在编程时是应该注意的地方...

Global site tag (gtag.js) - Google Analytics