JNotify を使用してフォルダを監視しています.新しいファイルがフォルダに入るとすぐに、そのファイルを解析し、ファイルを別のフォルダに移動する必要があります.ファイル移動のコードを実行すると、「他のプロセスで使用されています。」
このファイルはすでに JNotify によって監視されているため、移動できません。
アイデアを手伝ってください。
JNotify を使用してフォルダを監視しています.新しいファイルがフォルダに入るとすぐに、そのファイルを解析し、ファイルを別のフォルダに移動する必要があります.ファイル移動のコードを実行すると、「他のプロセスで使用されています。」
このファイルはすでに JNotify によって監視されているため、移動できません。
アイデアを手伝ってください。
Java コードには、開いているファイル ハンドルが必要です。リーダーまたはその他のファイル オブジェクトが閉じられ、ガベージ コレクションが行われていることを確認します。私は同じ問題を抱えていましたが、コードを分析した後InputStreamReader
、例外がキャッチされたときに閉じられていないことがわかりました。の付いたfinally{}
ブロックにブロックを追加したところ、問題は解決しました。 try catch
reader.close()
Java 7 以降、WatchServiceを使用してファイル システムの変更を追跡できます。
あなたのケースでJava 7を使用することがオプションである場合、私は間違いなくそれを選びます。
チュートリアルは非常に役に立ち、一目瞭然です。