WatchMonitor提供的事件有:
- ENTRY_MODIFY 文件修改的事件
- ENTRY_CREATE 文件或目录创建的事件
- ENTRY_DELETE 文件或目录删除的事件
- OVERFLOW 丢失的事件
- EVENTS_ALL 全部事件
代码示例:
@Slf4j
@Component
public class FileMonitor {
@PostConstruct
public void fileCreateMonitor() {
String dirPath = "E:/";
File file = FileUtil.file(dirPath);
if (ObjectUtil.isNull(file) && !file.exists()) {
log.info("监听目录:{},不存在,请检查并修改配置文件后重启程序。", dirPath);
return;
}
WatchMonitor watchMonitor = WatchMonitor.create(file, WatchMonitor.EVENTS_ALL);
watchMonitor.setWatcher(new Watcher(){
@Override
public void onCreate(WatchEvent<?> event, Path currentPath) {
Object obj = event.context();
Console.log("创建:{}-> {}", currentPath, obj);
}
@Override
public void onModify(WatchEvent<?> event, Path currentPath) {
Object obj = event.context();
Console.log("修改:{}-> {}", currentPath, obj);
}
@Override
public void onDelete(WatchEvent<?> event, Path currentPath) {
Object obj = event.context();
Console.log("删除:{}-> {}", currentPath, obj);
}
@Override
public void onOverflow(WatchEvent<?> event, Path currentPath) {
Object obj = event.context();
Console.log("Overflow:{}-> {}", currentPath, obj);
}
});
watchMonitor.setMaxDepth(3);
watchMonitor.start();
}
}