2

特定のフォルダーに対して行われているすべての変更を監視しようとしています。2 ~ 5 個のサブフォルダーを含むフォルダーをコピーし、それぞれに 2 ~ 3 個のファイルがあります。すべてがうまく機能します。

複雑なフォルダ構造をコピーすると問題が発生します。たとえば、WEB-INF フォルダーのクラス フォルダーに多数のソース ファイルとサブフォルダーがあり、lib フォルダーに多数の jar ファイルがあるサンプル Web アプリケーション フォルダー (テスト目的のみ) をコピーする場合などがあります。

多くのファイルの「ENTRY_CREATE」および「ENTRY_MODIFY」の多くのファイル イベントが見逃されています。

NIO2 ウォッチャー API は信頼できませんか?

Oracle Web サイトに記載されている次のスニペットを使用しています。

WatchKey watchKey = folderPathToMonitor.register(watchService,StandardWatchEventKinds.ENTRY_CREATE,
                StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);

そして、これは私がイベントをキャプチャする方法です: コードはまさにここにあるものです - http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com /javase/tutorial/essential/io/examples/WatchDir.java

私は、30 個のフォルダーに約 500 個のファイルをコピーし、理想的には ENTRY_CREATE と ENTRY_MODIFY に多くのファイルとフォルダーを通知する必要があります。ただし、キャプチャされた最大イベント (ENTRY_CREATE と ENTRY_MODIFY を合わせたもの) は 280 を超えていませんが、コピーされた 530 個のファイルとフォルダーに対して、最小 530 個の ENTRY_CREATE イベントだけを登録する必要があります。

oracle.com の監視コードに欠けているもの、または追加する必要があるものはありますか? これに関する提案は大歓迎です。

4

1 に答える 1

2

Ok。jnotify を使用してこれを解決しました。かなり簡単です。同じ操作で複数のイベントを無視するためのコードを作成する必要がありました。しかし、それは機能しました。jnotify を入手 - http://jnotify.sourceforge.net/

于 2012-11-23T13:11:47.127 に答える