什么标准应该应用程序来查找重复匹配项

What criteria should apply a program to find duplicate matches

我基本上是编程新手,我想做一个在文件夹中查找重复文件的程序(有很多程序,其中一些是免费的,不在乎,我想做我的程序)和问题是什么礼节需要 2 个文件才能匹配? 起初我在想如果它们是 mp3,做一个名称和大小检查,一个 pdf 相同,一个 txt 相同 + 实际内容检查? 同样按照这个顺序,我在某个地方读到,他们首先检查尺寸,然后再检查其他东西,我觉得这种方式不对。 我需要一些其他或更好的想法。

谢谢

我认为您的想法是检查扩展名,文件大小也不错。根据您的需要,我可以提示您一些我认为有用的东西:

1.检查扩展名:

当您想排除其中一些时。但是如果你想确切地检查里面的东西是行不通的。

简单示例:

My_file.pdf 内部为 0001 位,My_file.jpg 内部为 0001 位,将被排除,但它们仍然相同。

2。检查尺码:

如果您要检查扩展名,检查文件大小不是一个好主意,因为有两个包含 (0001) 和第二个 (0100) 的文件“.pdf”,您可以很容易地看到它们不相等,但检查大小将 return 为真,但当然如果两个文件大小不相等,您可以删除它们并说它们不相等。

3。检查哈希:

从您的文件中生成哈希,然后比较它们会给您信息,如果它们相等,因为哈希函数将 return 对于相同的对象总是相同的哈希。

查看更多:https://en.wikipedia.org/wiki/Hash_function

4.每字节检查一个字节:

虽然这不是个好主意,但假设你有 2x4GB 的文件,你的哈希函数可以工作很长时间,当然一个字节一个字节会工作更长的时间,但你可能会遇到这样的情况:

File1.pdf (4GB) 文件开头:011010...0 File2.pdf (4GB) 111010...0

如您所见,首先检查第一个字节会自动return那些文件不相等,这样您会节省很多时间。

当然你必须考虑,你需要什么,你想如何比较你的文件,这些只是可以帮助你构建你的应用程序的片段。

所有这些方法在 Java 中都很简单,实现它们不会有任何问题。

PS: 对不起我的英语,这不是我的主要语言。