特定のフォルダーに対して行われているすべての変更を監視しようとしています。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 の監視コードに欠けているもの、または追加する必要があるものはありますか? これに関する提案は大歓迎です。