C# 如何判断两个文件内容是否相同的方法

该哈希算法为一个文件生成一个小的二进制“指纹”,从统计学的角度来看,不同的文件不可能生成相同的哈希码

要生成一个哈希码,必须首先创建一个HashAlgorithm对象,通过HashAlgorithm.Create方法来完成。然后调用

HashAlgorithm.ComputeHash方法,它会返回一个存储哈希码的字节数组,再使用BitConverter.Tostring()将其

装换为字符串进行比较。

源码如下:

代码如下:

public static bool isValidFileContent(string filePath1, string filePath2)
       {
           //创建一个哈希算法对象
           using (HashAlgorithm hash = HashAlgorithm.Create())
           {
               using (FileStream file1 = new FileStream(filePath1, FileMode.Open),file2=new FileStream(filePath2,FileMode.Open))
               {
                   byte[] hashByte1 = hash.ComputeHash(file1);//哈希算法根据文本得到哈希码的字节数组
                   byte[] hashByte2 = hash.ComputeHash(file2);
                   string str1 = BitConverter.ToString(hashByte1);//将字节数组装换为字符串
                   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();
     }

(0)

相关推荐

  • C# 如何判断两个文件内容是否相同的方法

    该哈希算法为一个文件生成一个小的二进制"指纹",从统计学的角度来看,不同的文件不可能生成相同的哈希码 要生成一个哈希码,必须首先创建一个HashAlgorithm对象,通过HashAlgorithm.Create方法来完成.然后调用 HashAlgorithm.ComputeHash方法,它会返回一个存储哈希码的字节数组,再使用BitConverter.Tostring()将其 装换为字符串进行比较. 源码如下: 复制代码 代码如下: public static bool isVali

  • JS判断两个对象内容是否相等的方法示例

    本文实例讲述了JS判断两个对象内容是否相等的方法.分享给大家供大家参考,具体如下: 我们知道,如果两个对象即使内容,JavaScript也会判断它们不相等.但是有时候,我们仅仅需要判断两个对象的内容是否相等.那么我们应该如何做到且考虑周全呢?比如说0和-0,null和undefined,是不相等的,NaN和NaN默认是不相等的.我写了一个isEqual方法,考虑到了诸多方面,代码如下: <!DOCTYPE html> <html> <head> <meta cha

  • Python判断两个文件是否相同与两个文本进行相同项筛选的方法

    python判断两个文件是否相同 import hashlib def getHash(f): line=f.readline() hash=hashlib.md5() while(line): hash.update(line) line=f.readline() return hash.hexdigest() def IsHashEqual(f1,f2): str1=getHash(f1) str2=getHash(f2) return str1==str2 if __name__ == '

  • .NET CORE中比较两个文件内容是否相同的最快方法

    前言 最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法 文件大小任意,所以不能将文件内容全部读入到内存中进行比较(更专业点说,需要使用非缓存的比较方式) 不依赖第三方库 越快越好 为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的Main方法的代码. 下面我们开始尝试各个比较方法,选出最优的解决方案: 比较两个文件是否完全相

  • 基于JavaScript判断两个对象内容是否相等

    这篇文章主要介绍了基于JavaScript判断两个对象内容是否相等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ES6中有一个方法判断两个对象是否相等,这个方法判断是两个对象引用地址是否一致 let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log(Object.is(obj1,

  • Linux 中清空或删除大文件内容的五种方法

    在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法. 注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件.清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误. 提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本. 1. 通过重定向到 Nul

  • Java追加文件内容的三种方法实例代码

    整理文档,搜刮出一个Java追加文件内容的三种方法的代码,稍微整理精简一下做下分享. import Java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.RandomAccessFile;

  • php读取文件内容到数组的方法

    本文实例讲述了php读取文件内容到数组的方法.分享给大家供大家参考.具体分析如下: php中可以通过file()函数将文件读取到数组中,数组中的元素即为文件的每行,file()函数通过"\n"按行分割文件保存到数组,所以数组每个元素都是以"\n"结尾,我们可以通过 rtrim()函数将其去除 <?php $lines = file("/tmp/file.txt"); foreach ($lines as $line) { $line = r

  • Python实现文件内容批量追加的方法示例

    本文实例讲述了Python实现文件内容批量追加的方法.分享给大家供大家参考,具体如下: #coding:utf-8 import os #-------代码段一 #获取当前文件夹 filePath = os.getcwd() #获取当前文件列表 fileNameList = os.listdir(filePath) fileDirList = [] #获取文件路径列表 for fileName in fileNameList: fileDirList.append(os.path.join(fi

  • 详解在Linux中清空或删除大文件内容的5种方法

    有时,在处理Linux终端中的文件时,您可能希望清除文件的内容,而无需使用任何Linux命令行编辑器打开它.怎么能实现这一目标?在本文中,我们将借助一些有用的命令,通过几种不同的方式清空文件内容. 警告:在我们继续查看各种方法之前,请注意,因为在Linux中一切都是文件,所以必须始终确保要清空的文件不是重要的用户或系统文件.清除关键系统或配置文件的内容可能会导致致命的应用程序/系统错误或故障. 就像刚刚说的,下面是从命令行清除文件内容的方法. 重要说明:出于本文的目的,我们access.log在

随机推荐