C#基础之如何判断两个文件内容是否相同
生活随笔
收集整理的這篇文章主要介紹了
C#基础之如何判断两个文件内容是否相同
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ?使用System.security.Cryptography.HashAlgorithm類為每個(gè)文件生成一個(gè)哈希碼,然后比較兩個(gè)哈希碼是否相同。
該哈希算法為一個(gè)文件生成一個(gè)小的二進(jìn)制“指紋”,從統(tǒng)計(jì)學(xué)的角度來(lái)看,不同的文件不可能生成相同的哈希碼
要生成一個(gè)哈希碼,必須首先創(chuàng)建一個(gè)HashAlgorithm對(duì)象,通過(guò)HashAlgorithm.Create方法來(lái)完成。然后調(diào)用
HashAlgorithm.ComputeHash方法,它會(huì)返回一個(gè)存儲(chǔ)哈希碼的字節(jié)數(shù)組,再使用BitConverter.Tostring()將其
裝換為字符串進(jìn)行比較。
源碼如下:
public static bool isValidFileContent(string filePath1, string filePath2){//創(chuàng)建一個(gè)哈希算法對(duì)象using (HashAlgorithm hash = HashAlgorithm.Create()){using (FileStream file1 = new FileStream(filePath1, FileMode.Open),file2=new FileStream(filePath2,FileMode.Open)){byte[] hashByte1 = hash.ComputeHash(file1);//哈希算法根據(jù)文本得到哈希碼的字節(jié)數(shù)組byte[] hashByte2 = hash.ComputeHash(file2);string str1 = BitConverter.ToString(hashByte1);//將字節(jié)數(shù)組裝換為字符串string str2 = BitConverter.ToString(hashByte2);return (str1==str2);//比較哈希碼}}}?使用該函數(shù)的主函數(shù)
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();}
?
轉(zhuǎn)載于:https://www.cnblogs.com/luodao1991/archive/2013/05/01/3052771.html
總結(jié)
以上是生活随笔為你收集整理的C#基础之如何判断两个文件内容是否相同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PYTHON__关于Socket中的Se
- 下一篇: 解决oninput在输入中文时,会获取拼