在Windows上测试过。观察文件夹a
中的更改。当我将观看的文件夹a
重命名为b
WatchService
时,仍会跟踪更改。问题是a
不再存在。 (Path)event.context()
返回监视文件夹的相对路径。所以,您现在正在查看a
文件夹和文件abc.txt
已更改。但实际上它放在文件夹b
中。
如何获得更改文件的正确绝对路径?
答案 0 :(得分:0)
我已在Windows 7上确认您的问题。更改(监视的)目录名称后,将报告事件,以便使用原始目录名称解析关联的文件名。使用jpathwatch时也是如此:http://jpathwatch.wordpress.com/或https://sourceforge.net/projects/jpathwatch/
通常,您正在观看“已知”或“预期”目录,例如“/ myDropBox”,预计不会更改名称。看起来,如果您希望观看的目录可能会更改其名称,那么您还需要注册其父目录。然后,您将看到原始名称的“删除”事件和新名称的“创建”。