使用WatchService监控指定目录内的文件的改动

时间:2023-01-29 15:07:28
package coin;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService; /**
* 如果指定的目录内的文件发生改变,则会打印语句。
* 监控指定目录下文件的改动。
* @author wrpc
*
*/
public class WatchServiceDemo { public static void main(String[] args) { boolean shutdown = false;
try {
WatchService watcher = FileSystems.getDefault().newWatchService(); Path dir = FileSystems.getDefault().getPath("C:\\workspace\\demo\\src");
WatchKey key = dir.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY); while(!shutdown) {
          key = watcher.take();
for (WatchEvent<?> event : key.pollEvents()) {
if(event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
System.out.println("Home dir changed.");
}
}
key.reset();
}
} catch (IOException e) {
e.printStackTrace();
}
} }