0

我正在使用 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 事件给出的文件名。如何获取修改后的文件名?

4

1 回答 1

0

如果您必须对数据进行一些处理,那么最好处理Modify事件,因为在创建时文件的字节为零(空文件)。

试试这个来获取文件名

Path _directoryToWatch;
String path = _directoryToWatch.resolve(watchEvent.context()).toString();
于 2012-09-10T09:46:04.663 回答