验证文件以进行测试

Mar*_*ren 6 windows testing

我昨天正在进行一些正式的测试.在他们的程序中,他们正在验证测试机器上的所有文件是否已从发布中取出.他们验证这些文件的方式是相同的,通过检查Windows资源管理器中放置的大小和日期/时间戳窗口.这些碰巧是因为我能够找到原因的另一个原因而关闭的.

这是验证文件是否相同的有效方法吗?我不这么认为并且开始争论,但我在这里年轻,所以我认为我不应该把它推得太远.我想说他们应该对文件进行二进制比较,以验证其内容是否准确.根据我的经验,时间/日期标记和大小属性并不总是按预期运行.有什么想法吗???

ang*_*son 3

确定两个文件是否相等的唯一 100% 方法是对两个文件进行二进制比较。

如果您可以忍受误报的风险(即两个文件不是 100% 相同,但您的代码表明它们是),那么可以使用摘要和校验和算法来减少工作量,特别是如果文件存在于两台不同的机器的带宽低于最佳带宽,因此二进制比较是不可行的。

摘要和校验和算法都有误报的机会,但确切的机会因算法而异。一般规则是,它的加密程度越高,输出的位数越多,误报的可能性就越小。

即使 CRC-32 算法也相当好用,并且应该很容易在互联网上找到实现它的代码示例。

如果您只进行大小/时间戳比较,那么我很遗憾地说,这很容易规避,并且实际上不会给您很大的确定性来确定文件是相同还是不同。

但这取决于,如果您知道在您的世界中,时间戳被保留,并且仅在修改文件时更改,那么您可以使用它,否则它无法保证。