2016-11-29 8 views
0

もし私にあなたにファイルを渡すなら。ファイルを読むことはできますが、ファイルを変更したりコピーすることはできません。その後、ファイルを取り出し、名前を変更して新しい場所に移動します。そのファイルをどのように識別できますか?ファイル名やファイルパスがないファイルを特定するにはどうすればよいですか?

プログラム用のメディアファイルのデータベースがあり、ユーザーがファイルの場所/名前を変更した場合、ディレクトリを検索して何かを探すことができますか?

+2

1つのアイデアは、ファイルのハッシュとファイルの長さを覚えておくことです。 – e0k

+3

'ファイルを読むことはできますが、ファイルを変更したりコピーすることはできません。' <---それを読むことができます。 – wim

+0

そして、コピー中に変更することができます。 –

答えて

1

私はこれを正確に実行しました。それは難しくありません。

ファイルとファイルサイズの256ビットのハッシュ(私は自分の頭の上から外したルーチンを忘れています)をテーブルに書き込みます。ファイルが一致する場合は一致します。 (そして、私はサイズを追跡することは必然的なものよりもパラノイアだと思う)。物事をスピードアップするために、私はまた、そのハッシュを32ビットの値に折りたたむ。 32ビットの値が一致する場合、私はすべてのデータをチェックします。

パフォーマンスのために、私は最後に調べた1,000万件のファイルを保存します。 32ビットの値は1つのファイルに格納され、その全体が読み込まれます。メインレコードを調べる必要がある場合、ディスクに合わせるためにパディングされた "ページ"(私は正確にどれだけ大きいか)を引っ張ります。

関連する問題