文件比较
2015-12-20 04:21:42 访问(1681) 赞(0) 踩(0)
/// <summary>
/// byte数组的比较
/// </summary>
/// <param name="one"></param>
/// <param name="two"></param>
/// <returns></returns>
protected bool CompareByteArray(byte[] one, byte[] two)
{
if (one == null && two == null)
return true;
if (one.Length != two.Length)
return false;
int iLen = one.Length;
for (int i = 0; i < iLen; ++i)
{
if (one[i] != two[i])
return false;
}
return true;
}
/// <summary>
/// 文件比较
/// </summary>
/// <param name="sFullName"></param>
/// <param name="dFullName"></param>
/// <returns></returns>
protected string FileCompare(string sFullName, string dFullName)
{
FileStream sourceFileStream = null;
FileStream destFileStream = null;
string theResult = "";
try
{
int iSize = 1024;
int sourceReadCount = 0;
int destReadCount = 0;
byte[] sourceBuffer = new byte[iSize];
byte[] destBuffer = new byte[iSize];
sourceFileStream = new FileStream
(
sFullName,
FileMode.Open
);
destFileStream = new FileStream
(
dFullName,
FileMode.Open
);
if (sourceFileStream.Length != destFileStream.Length)
{
return "文件大小不一致。";
}
sourceFileStream.Seek(0, SeekOrigin.Begin);
while (true)
{
sourceReadCount = sourceFileStream.Read(sourceBuffer, 0, iSize);
destReadCount = destFileStream.Read(destBuffer, 0, iSize);
if (sourceReadCount != destReadCount)
{
theResult = "文件大小不一致。";
break;
}
if (sourceReadCount == 0)
break;
// 比较Buffer //
if (!CompareByteArray(sourceBuffer, destBuffer))
{
theResult = "不相同。";
break;
}
}
}
catch (Exception err)
{
throw err;
}
finally
{
if (sourceFileStream != null)
{
sourceFileStream.Close();
sourceFileStream.Dispose();
sourceFileStream = null;
}
if (destFileStream != null)
{
destFileStream.Close();
destFileStream.Dispose();
destFileStream = null;
}
}
return theResult;
}
标签:
文件比较 


上一条:
下一条:
相关评论
发表评论