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

 更新时间:2016年06月21日 10:27:08   作者:zam151  
这篇文章主要介绍了.NET实现简易的文件增量备份程序,需要的朋友可以参考下

.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+""); //显示所消耗的时间
}

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

相关文章

  • JAVA正则表达式 Pattern和Matcher

    JAVA正则表达式 Pattern和Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。
    2009-04-04
  • ASP.NET多彩下拉框开发实例

    ASP.NET多彩下拉框开发实例

    有人曾经提出开发一个根据不同选择而显示不同颜色的管理工具,本文主要就是演示如何读取系统颜色并在下拉框中的每个条目中显示对应的颜色,需要的朋友可以参考下
    2015-09-09
  • ASP.NET开发中经常用到10款工具软件介绍

    ASP.NET开发中经常用到10款工具软件介绍

    从事.NET开发也好几年了,工作过程中积累一些软件工具,分享给大家,排名不分先后,希望对大家有所帮助。
    2016-04-04
  • asp.net下ajax.ajaxMethod使用方法

    asp.net下ajax.ajaxMethod使用方法

    使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法,做一些JS无法做到的操作,如查询数据库
    2011-10-10
  • .net mvc超过了最大请求长度的解决方法

    .net mvc超过了最大请求长度的解决方法

    这篇文章主要为大家详细介绍了.net mvc超过了最大请求长度的解决方法,限制文件上传大小,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Asp.net中通过Button打开另一个的frm

    Asp.net中通过Button打开另一个的frm

    本文通过实例代码给大家介绍了asp.net中通过button打开另一个frm的方法,非常不错,需要的朋友参考下吧
    2016-12-12
  • .NET6创建Windows服务的实现步骤

    .NET6创建Windows服务的实现步骤

    本文主要介绍了.NET6创建Windows服务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • VS2013的Browser Link引起的问题

    VS2013的Browser Link引起的问题

    这篇文章主要为大家详细介绍了VS2013的Browser Link引起的问题,以及Browser Link问题的解决方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • .NET连接池的问题详解

    .NET连接池的问题详解

    这篇文章主要介绍了.NET连接池的问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • ASP.NET连接MySql数据库的2个方法及示例

    ASP.NET连接MySql数据库的2个方法及示例

    这篇文章主要介绍了ASP.NET连接MySql数据库的2个方法及示例,使用的是MySQL官方组件和ODBC.NET,需要的朋友可以参考下
    2014-03-03

最新评论