当前位置: 移动技术网 > IT编程>开发语言>.net > .NET实现简易的文件增量备份程序

.NET实现简易的文件增量备份程序

2017年12月12日  | 移动技术网IT编程  | 我要评论

巴黎欧莱雅积分兑换,吴嘉熙,红河道多少钱

.net中提供了许多方便使用的方法,包括在处理文件中查找文件、拷贝文件等,今天实现的是通过简易的程序实现增量的备份文件。

首先需要的是选择备份源文件路径sourcepath和备份目标文件路径destinationpath,然后通过stopwatch统计拷贝所耗费的时间。(注意:使用stopwatch需要添加 using system.diagnostics命名空间,对文件的读写需要添加 using system.io命名空间)。

/// <summary>
/// 增量备份函数方法
/// </summary>
/// <param name="sourcepath">备份源文件路径</param>
/// <param name="destinationpath">备份目标文件路径</param>
public void copydirectory(string sourcepath, string destinationpath){
  stopwatch watch = new stopwatch();
  watch.start();   //开始计算时间
  // 检查目标目录是否以目录分割字符结束如果不是则添加
  if (destinationpath[destinationpath.length - 1] != path.directoryseparatorchar)
  {
   destinationpath += path.directoryseparatorchar;
  }
  //判断目标目录是否存在如果不存在则新建
  if (!directory.exists( destinationpath))
  {
   directory.createdirectory(destinationpath);
  }
  // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  string[] filelist = directory.getfilesystementries(sourcepath);
  // 遍历所有的文件和目录
  foreach (string sourcefilename in filelist)
   {
    string filename = path.getfilename(sourcefilename);
     //先判断文件在目标文件夹中是否存在
     if (file.exists(destinationpath + filename))
      {
       fileinfo oldfile = new fileinfo(sourcefilename);
       fileinfo newfile = new fileinfo(destinationpath + filename);
       if (oldfile.lastwritetime == newfile.lastwritetime) 
        {
          continue;     //跳出本次循环
        }
       }      else {
       // 先当作目录处理如果存在这个目录就递归copy该目录下面的文件
       if (directory.exists(sourcefilename))
        {
          copydirectory(sourcefilename, destinationpath + filename);
        }// 否则直接copy文件
        else {
          file.copy(sourcefilename, destinationpath + filename, true);          }
       }
   }
  watch.stop();  //时间停止  messagebox.show("备份完成 耗时"+watch.elapsed+""); //显示所消耗的时间
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网