2014-06-28 48 views
0

在Android中进行开发时,比较两个文件以确定它们是否相同的最有效方法是什么?在android中,比较两个文件以确定它们是否相同的最有效方法是什么?

我知道计算每个MD5哈希值并进行比较是一种可能的解决方案,但是我的假设是这样做是非常重要的(因此多次比较会导致用户等待很长时间)。我当然愿意纠正......当其他应用程序计算MD5时,我的经验是它不是特别快,但也许这是他们的实现。


被覆盖的情况是,我有一个“已知”的文件(在相同的名称,在不同的文件夹)的列表,以及一个新的文件。我试图确定新文件是否与我现有的任何文件相同或不相同。

回答

0

如果给出2个没有预先知识的随机文件,最快的方法是检查大小是否相同,然后检查每个字节是否相同(当你找到一个不同的当然是停止)。

当您提前知道文件时 - 当您可以预先计算MD5时,MD5s会有所帮助。它还可以帮助验证文件 - 如果您知道MD5应该是什么,您可以将它与实际看到的文件是否已更改/篡改进行比较。

+0

我应该在我对问题的描述中更加清楚。我的意图是确定一个给定的文件是否与我手边已有的文件列表相匹配,或者它是否是新的。 – xtraorange

+0

然后MD5是要走的路。计算列表中每个文件的MD5,并将其保存在HashMap 中。然后计算新文件的MD5。如果它在哈希中,你已经拥有它。如果不是,它是新的。因为您可以预先计算大部分/所有MD5,所以MD5在这里表现得很好,您可以比比较一个文件和其他文件更快地比较预先计算的MD5。此外,如果文件位于网络上,则可以仅传输MD5来检查而不是传输整个文件。 –

+0

太好了,谢谢! – xtraorange

相关问题