.NET实现简易的文件增量备份程序
.Net中提供了许多方便使用的方法,包括在处理文件中查找文件、拷贝文件等,今天实现的是通过简易的程序实现增量的备份文件。
首先需要的是选择备份源文件路径SourcePath和备份目标文件路径DestinationPath,然后通过StopWatch统计拷贝所耗费的时间。(注意:使用StopWatch需要添加usingSystem.Diagnostics命名空间,对文件的读写需要添加usingSystem.IO命名空间)。
///<summary>
///增量备份函数方法
///</summary>
///<paramname="SourcePath">备份源文件路径</param>
///<paramname="DestinationPath">备份目标文件路径</param>
publicvoidCopyDirectory(StringSourcePath,StringDestinationPath){
Stopwatchwatch=newStopwatch();
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(stringSourceFilenameinfileList)
{
stringfilename=Path.GetFileName(SourceFilename);
//先判断文件在目标文件夹中是否存在
if(File.Exists(DestinationPath+filename))
{
FileInfooldFile=newFileInfo(SourceFilename);
FileInfonewFile=newFileInfo(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+"");//显示所消耗的时间
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。