java - 我可以观看文件/文件夹重命名事件吗?
问题描述
尝试使用 java 8 到 java 11 版本为多个平台(如带有 java nio 包的 windows/unix/linux)实现监视文件/文件夹事件,如(CREATE、DELETE、MODIFY、RENAME)
观察到 CREATE/DELETE/MODIFY 工作正常。试图理清如何捕获文件或文件夹上的重命名事件。
key = filePath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
break;
case modified:
key = filePath.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY);
break;
case deleted:
key = filePath.register(watchService, StandardWatchEventKinds.ENTRY_DELETE);
break;
case renamed:
key = filePath.register(watchService, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_CREATE);
break;
default:
break;
重命名事件也没有错误,它会生成多个事件,如删除和创建,为此寻找更可靠的解决方案。
解决方案
推荐阅读
- python - 是否有喜欢查询运算符,在“peewee 的剧场扩展”中加入查询?
- css - 导入css类以做出反应?
- google-apps-script - 用户可以从电子表格复制数据并将其发送(粘贴)到“主”电子表格,而无需后者的权限吗?
- azure - 如何在 Azure Blob 存储上的静态网站中启用 Azure AD(天蓝色活动目录)身份验证
- api - 如何访问 API 中的嵌套类?
- android - 将 FireMonkey 应用程序重新部署到我的物理设备后,GetDocumentsPath 始终包含旧资产文件
- javascript - 如何在点击事件中获取子元素
- kubernetes - 有多个 URL 用于查看 Spinnaker 中的日志
- java - 在 Spring Boot Webflux 中,通过配置使用路由器和处理程序时,如何转义 url 路径参数中的所有正斜杠?
- c++ - 返回指向本地 char 变量的字符串对象是否安全