2
フォルダ内のファイルの作成を検出しようとしていますが、WatchService
は2番目のファイルの作成を検出できません。それはkey = watcher.take()
に固執します。どんな考え?私はUbuntu 11.04 x86を使用しています。あなたがイベントを処理した後key.reset()を呼び出す必要がありJava:nio WatchService - 2番目のファイルの作成を検出できません。どうして?
private void watchWorkingDirectory() {
try {
WatchService watcher = FileSystems.getDefault().newWatchService();
WatchKey key;
key = Paths.get(tailSource, "").register(watcher, ENTRY_CREATE);
for (;;) {
System.err.println("Watching current working directory...............................................");
// wait for key to be signalled
key = watcher.take();
System.out.println("Event detected:");
for (WatchEvent<?> event : key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
if (kind == ENTRY_CREATE) {
tailSource = event.context().toString();
System.out.println(tailSource);
File file = new File(tailSource);
BufferedReader br = new BufferedReader(new FileReader(file));
System.out.println(br.readLine());
tailer = new Tailer(file, tListener, 1, false);
(new Thread(tailer)).start();
}
}
}
} catch (IOException | InterruptedException e) {
System.out.println(e.getMessage());
}
}
}
私はあなたが任意の予期しないイベントを取得する場合、 'ログインできますか?)アプリケーションがちょうど'(取るに座っていると仮定 –