我正在使用 nio.2 类的 Watch Service API 来监视我的项目中的特定目录(OS 平台 Ubuntu 11.10)。每当进行更改时,例如,如果将名为 abc.json 的新文件添加到监视目录,它首先会触发 CREATED 事件,然后立即触发 MODIFIED 事件。我知道这是因为操作系统首先创建了一个 0 字节文件然后对其进行了修改。应该在http://java.dzone.com/news/how-watch-file-system-changes给出的代码中进行哪些更改,以便只触发 CREATE 事件而不是 MODIFIED 事件。
其次,当触发 MODIFY 事件时, event.context().toString(); 方法给出类似.goutputstream-N2Z89V的输出,而不是由 CREATED 或 DELETED 事件给出的文件名。如何获取修改后的文件名?