一尘不染

如何使用.NET快速比较2个文件?

c#

典型的方法建议通过FileStream读取二进制文件并逐字节比较它。

  • 校验和比较(例如CRC)会更快吗?
  • 是否有任何.NET库可以为文件生成校验和?

阅读 232

收藏
2020-05-19

共1个答案

一尘不染

校验和比较最有可能比逐字节比较慢。

为了生成校验和,您需要加载文件的每个字节,并对其进行处理。然后,您必须在第二个文件上执行此操作。处理几乎肯定会比比较检查慢。

至于生成校验和:您可以使用密码学类轻松地做到这一点。这是使用C#生成MD5校验和简短示例

但是,如果可以预先计算“测试”或“基本”情况的校验和,则校验和可能会更快并且更有意义。如果您有一个现有文件,并且正在检查一个新文件是否与现有文件相同,则在“现有”文件上预先计算校验和将意味着只需要一次在磁盘上执行DiskIO。新文件。这可能比逐字节比较要快。

2020-05-19