私の考えは、ファイルシステム上の特定のファイルを2つの時点の間で経時的に追跡することT1
ですT2
。ここでの重点は、ファイルをファイルシステム上の一意のエンティティとして見ることにあります。データと属性を変更できるが、それでも独自のアイデンティティを維持できるもの。
最終的な目標は、ファイルのデータハッシュと作成/変更属性をでキャプチャして記録し、それらをで同等のものT1
と比較することによって、ファイルのデータが(不本意に)変更されたかどうかを判断することです。すべての属性が変更されていないが、ハッシュが検証されない場合は、問題があると言えます。他のすべての場合、変更されたハッシュは変更の結果であり、変更されていないハッシュと変更されていない変更の結果であると言うことをいとわないかもしれません-ファイル(データ)の変更がまったくない結果であると考えてください。T2
T1
T2
現在、ファイルを参照する方法とそれに対応する欠点がいくつかあります。
- ファイルへのパス:ただし、ファイルが別の場所に移動された場合、このメソッドは失敗します。
- file-dataのデータハッシュ:ポインタが別のディレクトリに移動された場合でも、ファイル、または(a)ディスク上のfile-dataへのポインタを見つけることができますが、データは変更できませんまたは、このメソッドも失敗します。
私の考えは、その特定のファイルのfileIdを取得して、でT1
ファイルを追跡することですT2
。たとえファイルの場所が変更されたとしても、新しいファイルと見なす必要はありません。
私はpywinが提供する2つの方法を知っています。win32file.GetFileInformationByHandle()
とwin32file.GetFileInformationByHandleEx()
、しかし、それらは明らかに特定のファイルシステムに制限されており、クロスプラットフォームの互換性を破り、ファイルを追跡するための普遍的なアプローチから離れています。
私の質問は単純です:理想的にはプラットフォーム/ FS全体でファイルを追跡するための他のアイデア/理論はありますか?
ブレーンストーミングされた思考の食べ物は大歓迎です!