示例:我的桌面有一个子文件夹“Desktop/sub”
如果只注册了 Desktop 并且一旦启动 WatchService 我修改子文件夹的内容..它是否应该触发 ENTRY_MODIFY?我试过了,但没有。它仅适用于修改注册文件夹中的文件(在本例中为桌面)。
只是问这个问题,因为在 OCPJP7 的模拟考试中,它说实际上即使修改诸如“Desktop/sub”之类的子文件夹,例如在“Desktop/sub”中删除一个文件,它也应该触发该事件。
但是,我再次尝试了它,但它不起作用。
这是代码:
WatchKey key = ws.poll(5, TimeUnit.SECONDS);
if (key ==null)
{
continue;
}
List<WatchEvent<?>> lista = key.pollEvents();
for (WatchEvent<?> event : lista)
{
switch(event.kind().toString())
{
case "ENTRY_CREATE": System.out.println("There has been a creation over here: "+event.context());break;
case "ENTRY_MODIFY": System.out.println("There has been a modification over here: "+event.context());break;
case "ENTRY_DELETE": System.out.println("There has been a deletion over here: "+event.context());
}
key.reset();
}
提前致谢。