/// <summary>
/// 比较是否相同文件
/// </summary>
/// <param name="fileValidator">原文件路径</param>
/// <param name="fileToCompare">要比较文件路径</param>
/// <returns>是否相同</returns>
public static bool FileCompare( string fileValidator, string fileToCompare )
{
// 判断文件路径是不是一样。
if(fileValidator == fileToCompare)
{return true;}
int file1byte = 0;
int file2byte = 0;
//开始文件流比较
try
{
using(FileStream fs1 = new FileStream(fileValidator,FileMode.Open),fs2 = new FileStream(fileToCompare,FileMode.Open))
{
// 首先检查文件大小。如果两个文件的大小不相同,则肯定是不相同的文件。
if(fs1.Length != fs2.Length)
{
// 关闭文件。
fs1.Close();
fs2.Close();
return false;
}
// 逐一比较两个文件的每一个字节,直到发现不相符或已到达文件尾端为止。
do
{
//从每一个文件读取一个字节。
file1byte = fs1.ReadByte();
file2byte = fs2.ReadByte();
}while ((file1byte == file2byte) && (file1byte != -1));
// 关闭文件。
fs1.Close();
fs2.Close();
}
// 返回比较的结果。在这个时候,只有当两个文件的内容完全相同时,"file1byte" 才会等于 "file2byte"。
return ((file1byte - file2byte) == 0);
}
catch( FileNotFoundException ex)
{
throw ex;
}
}