2016-11-29 77 views
0

如果我要给你一个文件。您可以阅读该文件,但无法更改或复制该文件。然后我拿起文件,重命名它,将它移动到一个新的位置。你怎么能识别这个文件? (相当可靠)如何识别没有文件名或文件路径的文件?

我正在寻找,如果我有一个程序的媒体文件的数据库,并且用户更改文件的位置/名称,我可以通过搜索目录和寻找东西来找到该文件。

+2

一个想法是记住文件和文件长度的散列。 – e0k

+3

'你可以阅读文件,但你不能改变它或复制它<<---如果我能读它,我可以复制它。 – wim

+0

您可以在复制时更改它。 –

回答

1

我已经完成了这一点,这并不难。

我用一个256位散列(我忘记了我头顶使用的那个例程)和文件大小,并将它写入表格。如果他们匹配的文件匹配。 (我认为跟踪大小比需要更偏执狂。)为了加快速度,我还将该哈希值折叠为32位值。如果32位值匹配,那么我检查所有的数据。

为了提高性能,我坚持我检查过的最后一千万个文件。当需要检查一个主记录时,32位值进入一个完整读取的文件中,我拉入一个填充的“页面”(我忘了它有多大),以便将其与磁盘对齐。