WatchService
ファイルシステムを継続的に監視するためにJava 7 が導入されました。Java 6 のバックポートはありますか?
同様の機能を持つ純粋な Java ライブラリはありますか?
WatchService
ファイルシステムを継続的に監視するためにJava 7 が導入されました。Java 6 のバックポートはありますか?
同様の機能を持つ純粋な Java ライブラリはありますか?
はい、もちろん。Apache VFS はまさにこれを行います。http://commons.apache.org/vfs/の下にあります。これは、ファイルを監視できる純粋な Java ライブラリであり、非常に使いやすいです。
FileSystemManager manager = VFS.getManager();
FileObject file= manager.resolveFile("c:/MyFile.txt");
DefaultFileMonitor fm = new DefaultFileMonitor(new MyListener());
fm.setDelay(5000);
fm.addFile(file);
fm.start();
上記のコードは、ファイル c:/MyFile.txt を監視します。変更された場合、オブジェクト new MyListener() が呼び出されます。
このための純粋な Java ライブラリは不可能です。ポーリングを避けたい場合は、ネイティブ コンポーネントが必要です。
http://wiki.netbeans.org/NativeFileNotificationsは、利用可能なネイティブ API とそれらをラップするさまざまな Java ライブラリの両方に関する情報を提供します。
Jetbrains IntelliJ IDEA には、基になるファイル システムの変更を IDEA に通知するネイティブ ファイル システム ウォッチャーを起動するコンポーネント「仮想ファイル システム」があります。2 年間、Jetbrains はコンポーネントを含むオープン ソース バージョンをリリースしてきました。Java 6 で動作します。
FAQページで主張されているように、Apache 2.0ライセンスの下でリリースされています。