16

WatchServiceファイルシステムを継続的に監視するためにJava 7 が導入されました。Java 6 のバックポートはありますか?

同様の機能を持つ純粋な Java ライブラリはありますか?

4

3 に答える 3

15

はい、もちろん。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() が呼び出されます。

于 2011-11-02T08:22:04.270 に答える
5

このための純粋な Java ライブラリは不可能です。ポーリングを避けたい場合は、ネイティブ コンポーネントが必要です。

http://wiki.netbeans.org/NativeFileNotificationsは、利用可能なネイティブ API とそれらをラップするさまざまな Java ライブラリの両方に関する情報を提供します。

于 2011-12-09T15:28:31.757 に答える
4

Jetbrains IntelliJ IDEA には、基になるファイル システムの変更を IDEA に通知するネイティブ ファイル システム ウォッチャーを起動するコンポーネント「仮想ファイル システム」があります。2 年間、Jetbrains はコンポーネントを含むオープン ソース バージョンをリリースしてきました。Java 6 で動作します。

FAQページで主張されているように、Apache 2.0ライセンスの下でリリースされています。

于 2011-11-01T15:16:36.383 に答える