我有一个程序可以使用WatchService
. 我在修改文件时收到事件。但是,我注意到即使我在 vi 中打开一个文件并且不修改其内容,poll
也会调用 watch 服务方法。我的代码如下:
watcher = FileSystems.getDefault().newWatchService();
Path path = Paths.get("conf");
path.register(watcher, ENTRY_MODIFY);
WatchKey key = null;
key = watcher.poll(MAX_WAIT_TIME, TimeUnit.SECONDS);
if (key != null) {
for (WatchEvent<?> events : key.pollEvents()) {
WatchEvent<Path> ev = cast(events);
Path fileName = ev.context();
}
在上面的代码中,watcher.poll 等待MAX_WAIT_TIME
一个ENTRY_MODIFY
事件。但是,当我在被监视的目录中打开一个文件并在不更改其内容的情况下关闭文件时……watcher.poll
接收到一个事件并停止等待。是否有一些参数需要设置而我错过了?