C# 如何判斷兩個文件內容是否相同的方法
更新時間:2013年05月01日 14:24:42 作者:
使用System.security.Cryptography.HashAlgorithm類為每個文件生成一個哈希碼,然后比較兩個哈希碼是否相同
該哈希算法為一個文件生成一個小的二進制“指紋”,從統(tǒng)計學的角度來看,不同的文件不可能生成相同的哈希碼
要生成一個哈希碼,必須首先創(chuàng)建一個HashAlgorithm對象,通過HashAlgorithm.Create方法來完成。然后調用
HashAlgorithm.ComputeHash方法,它會返回一個存儲哈希碼的字節(jié)數組,再使用BitConverter.Tostring()將其
裝換為字符串進行比較。
源碼如下:
復制代碼 代碼如下:
public static bool isValidFileContent(string filePath1, string filePath2)
{
//創(chuàng)建一個哈希算法對象
using (HashAlgorithm hash = HashAlgorithm.Create())
{
using (FileStream file1 = new FileStream(filePath1, FileMode.Open),file2=new FileStream(filePath2,FileMode.Open))
{
byte[] hashByte1 = hash.ComputeHash(file1);//哈希算法根據文本得到哈希碼的字節(jié)數組
byte[] hashByte2 = hash.ComputeHash(file2);
string str1 = BitConverter.ToString(hashByte1);//將字節(jié)數組裝換為字符串
string str2 = BitConverter.ToString(hashByte2);
return (str1==str2);//比較哈希碼
}
}
}
使用該函數的主函數
復制代碼 代碼如下:
static void Main(string[] args)
{
string filePath1 = @"f:/1.txt";
string filePath2 = @"f:/2.txt";
bool valid=isValidFileContent(filePath1, filePath2);
Console.WriteLine(valid.ToString());
Console.ReadKey();
}
相關文章
Treeview動態(tài)添加用戶控件傳值和取值的實例代碼
今天做了很好玩的樹,是treeview與用戶控件之間進行交互先看效果:2013-04-04

