我按照Watching a Directory for Changes Java7 nio2 教程使用代码示例 WatchDir.java 递归地监视目录的全部内容。
虽然这在 Linux 和 Mac 上运行良好,但在 Windows(在 Vista 和 7 上测试)上,尝试使用 Windows 资源管理器删除嵌套的、受监视的文件夹失败,并在文件时显示类似于“拒绝访问:您需要执行此操作的权限”的消息存在于嵌套目录之一中。
例如,如果我在 Windows 中查看嵌套的文件夹树:
-- Folder A
-- Folder A1
-- File F
并尝试删除文件夹 A,我收到上述拒绝访问错误。但是,如果我:
- 删除文件夹 A1 然后删除文件夹 A
- 删除文件 F 然后删除文件夹 A
有没有办法使用 nio2 WatchService 递归地监视嵌套目录,但不像程序正在访问嵌套文件?