特定のディレクトリで新しいファイルを受信した場合に通知するリスナーを実装しました。これは、TimerTaskをポーリングして使用することで実装されます。これで、プログラムは、新しいファイルを受信すると、ファイルを開いてそれが正しいファイルであるかどうかを検証する別のJavaプログラムを呼び出すように設定されました。私の問題は、ポーリングが指定された秒数後に行われるため、ファイルがそのディレクトリにコピーされ、ウィンドウによってロックされる場合が発生する可能性があることです。
検証のためにそれを開こうとする他のJavaプログラムはIOExceptionをスローできません(「ファイルは別のプロセスによって使用されています」)。
Windowsがいつコピーを終了したかを知り、2番目のプログラムを呼び出してJavaから検証を行う方法はありますか?
誰かが助けるためにコードスニペットを必要とするなら、私は喜んでコードスニペットを投稿します。
ありがとう