Java7 WatchService - 尝试删除递归监视的嵌套目录时出现“访问被拒绝”错误(仅限 Windows)
我按照 Java7 nio2 教程监视更改目录,使用代码示例 WatchDir.java递归地监视目录的全部内容。
虽然这在 Linux 和 Mac 上效果很好,但在 Windows(在 Vista 和 7 上测试)上,当文件存在于其中一个嵌套目录中时,尝试使用 Windows 资源管理器删除嵌套的监视文件夹会失败,并显示类似于“拒绝访问:您需要执行此操作的权限”的消息。
例如,如果我在 Windows 中观察嵌套文件夹树:
-- Folder A
-- Folder A1
-- File F
并尝试删除文件夹A,我得到说访问被拒绝错误。但是,如果我:
- 删除文件夹 A1,然后删除文件夹 A
- 删除文件 F,然后删除文件夹 A
有没有办法使用 nio2 WatchService 以递归方式监视嵌套目录,但不充当程序正在访问嵌套文件的行为?