Java nio2类的监视服务API存在问题

Java nio2类的监视服务API存在问题,java,filesystems,nio2,Java,Filesystems,Nio2,我正在使用nio.2类的Watch服务API来监视我的项目(操作系统平台Ubuntu11.10)中的一个特定目录。无论何时进行更改,例如,如果将一个名为abc.json的新文件添加到监视的目录中,它首先触发创建的事件,然后立即触发修改的事件。我知道这是因为操作系统首先创建一个0字节的文件,然后修改它。为了只触发CREATE事件而不是MODIFIED事件,应该对中给出的代码进行哪些更改 其次,当触发修改事件时,event.context().toString();方法给出的输出类似于.goutpu

我正在使用nio.2类的Watch服务API来监视我的项目(操作系统平台Ubuntu11.10)中的一个特定目录。无论何时进行更改,例如,如果将一个名为abc.json的新文件添加到监视的目录中,它首先触发创建的事件,然后立即触发修改的事件。我知道这是因为操作系统首先创建一个0字节的文件,然后修改它。为了只触发CREATE事件而不是MODIFIED事件,应该对中给出的代码进行哪些更改


其次,当触发修改事件时,event.context().toString();方法给出的输出类似于.goutputstream-N2Z89V,而不是创建或删除事件给出的文件名。如何获取已修改的文件名?

如果必须对数据执行某些处理,则最好处理
修改
事件,因为在创建时文件的字节数为零(空文件)

尝试此操作以获取文件名

Path _directoryToWatch;
String path = _directoryToWatch.resolve(watchEvent.context()).toString();