2016-11-29 75 views
0

如果我要給你一個文件。您可以閱讀該文件,但無法更改或複製該文件。然後我拿起文件,重命名它,將它移動到一個新的位置。你怎麼能識別這個文件? (相當可靠)如何識別沒有文件名或文件路徑的文件?

我正在尋找,如果我有一個程序的媒體文件的數據庫,並且用戶更改文件的位置/名稱,我可以通過搜索目錄和尋找東西來找到該文件。

+2

一個想法是記住文件和文件長度的散列。 – e0k

+3

'你可以閱讀文件,但你不能改變它或複製它<<---如果我能讀它,我可以複製它。 – wim

+0

您可以在複製時更改它。 –

回答

1

我已經完成了這一點,這並不難。

我用一個256位散列(我忘記了我頭頂使用的那個例程)和文件大小,並將它寫入表格。如果他們匹配的文件匹配。 (我認爲跟蹤大小比需要更偏執狂。)爲了加快速度,我還將該哈希值摺疊爲32位值。如果32位值匹配,那麼我檢查所有的數據。

爲了提高性能,我堅持我檢查過的最後一千萬個文件。當需要檢查一個主記錄時,32位值進入一個完整讀取的文件中,我拉入一個填充的「頁面」(我忘了它有多大),以便將其與磁盤對齊。