我以前认为我可以使用校验和(MD5或CRC32)来改进上传方法。也就是说,如果文件校验和相同,则我认为它是同一文件。但是有一天,我在org.apache.commons.io.FileUtils
中看到了包含两个方法contentEquals
和contentEqualsIgnoreEOL
的代码。检查同一文件有两种方法。
if (file1.getCanonicalFile().equals(file2.getCanonicalFile())) {
// same file
return true;
}
和
IOUtils.contentEquals(new FileInputStream(f1), new FileInputStream(f2));
这是令我困惑的
canonical
的足够信息。是什么意思?因此,在哪种情况下我应该使用字节或校验和检查同一文件。
答案 0 :(得分:1)
校验和
可以通过预先缓存每个文件的校验和来使用校验和来进行快速检查。