使用MD5备份文件!

 

日常需要备份文件到另外一个地方去,由于文件比较大,不想每次都覆盖,又不想每次手工备份。

不知道大家如何判断两个文件是否是同一个文件?或者说一个文件没有经过修改?

我唯一的思路是根据XunLei或者eMule的思路,给每个文件产生一个ID,根据这个ID是否一样,还判断是否需要更新。

而不是根据文件的时间信息等。因为我测试一些软件时需要不时修改系统的时间,如果根据时间,可能出出现一些误会。

 

啥也不说了,附上代码吧:比较简单,高手勿笑!

private string MD5(string fileName)
{
string temp = ""
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] md5byte = md5.ComputeHash(fs);

int i, j;
foreach (byte b in md5byte)
{
i = Convert.ToInt32(b);
j = i >> 4;
temp = temp + Convert.ToString(j, 16);
j = ((i << 4) & 0x00ff) >> 4;
temp = temp + Convert.ToString(j, 16);
}
return temp;
}

private void CopyThisFile(string filename)
{
string srctemp = ""
srctemp = filename.Substring(filename.IndexOf(srcPath)+ srcPath.Length+1);
string decTemp = ""

if (decPath.Substring(decPath.Length - 1) == @"\")
decTemp = decPath +srctemp;
else
decTemp = decPath + @"\" + srctemp;

FileInfo abc = new FileInfo(decTemp);

if (!Directory.Exists(abc.DirectoryName))
{
Directory.CreateDirectory(abc.DirectoryName);
}
if (File.Exists(decTemp))
{
if (MD5(filename) == MD5(decTemp))
{
}
else
{
File.Copy(filename, decTemp,true);
}
}
else
{
File.Copy(filename, decTemp);
}

}

转载于:https://www.cnblogs.com/jeffersyuan/archive/2007/04/18/718108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值