基本的に、新しい Java の 7 WatchService を使用してディレクトリを監視しています。
ディレクトリによって発行されたすべての IO イベントをリッスンするハンドラーのチェーンがあります。
問題は、一部のハンドラーが何らかの方法でこれらの IO イベント (== ファイル) の理由を変更する必要があることです。たとえば、誰かがファイルを監視対象のフォルダーに入れると、ハンドラーの 1 つが拡張子を変更したり、ファイル名に何かを追加したりします。
もちろん、これらのアクションは新しい IO イベントをトリガーし、前述のハンドラーがそれらを取得します。その後、彼らはもう一度変更を行います。これは明らかに無限ループにつながります...
Java はこの種の状況を処理する方法を提供していますか? そうでない場合、これにどのように対処しますか?
基本的に、イベントがそれらのハンドラーのアクションによって引き起こされなかった場合にのみ、イベントハンドラーを実行したいと思います。
更新:解決策については、私が書くすべてのハンドラーでこれを心配するよりも、メインイベントルーターのコードでのみ変更を加えたいと思います(「ハンドラーは以前に変更しなかった場合にのみ変更を加えます」)。