Javaでファイルを監視しようとしています。ファイルの変更がいつ行われるか知りたい:
- 変更を行ったプロセス。
- 変化したこと。
また、ファイルの「最終更新日」を変更する方法があることも知っているので、誰かがそのフィールドを変更したかどうかを確認したいと思います。
「commons.io」、「DefaultFileMonitor」、「WatchService」を試してみましたが、それらから得られる情報は、変更が発生した場合と変更されたファイルだけでした。
Javaでファイルを監視しようとしています。ファイルの変更がいつ行われるか知りたい:
また、ファイルの「最終更新日」を変更する方法があることも知っているので、誰かがそのフィールドを変更したかどうかを確認したいと思います。
「commons.io」、「DefaultFileMonitor」、「WatchService」を試してみましたが、それらから得られる情報は、変更が発生した場合と変更されたファイルだけでした。
私がまったく知らない奇妙な OS を使用している場合を除き、誰がファイルを変更しているかを追跡するために実装する何らかのメカニズムを使用する必要があります。OSはそれを追跡しません。また、何が変更されたかを追跡しません。
したがって、ファイルが変更されたことを追跡するためにファイルを変更する可能性のあるすべてのプロセスを取得できない限り、#1を実行できるとは思いません。
ファイルのコピーを保持してから比較を行う場合は、#2を実行できます。
あなたにはそれができないと確信しています。OSもJavaもそのような情報を保存していません。たぶん、いくつかのカーネル呼び出しを使用しています。