一尘不染

java.nio.file.WatchEvent仅提供相对路径。如何获取修改后的文件的绝对路径?

java

我正在使用Java
7和WatchService一起使用java.nio.file.WatchEvent。注册后,当我轮询ENTRY_MODIFY事件时,无法到达该事件文件的绝对路径。有什么方法可以从WatchEvent对象获取文件的绝对路径吗?


阅读 238

收藏
2020-12-03

共1个答案

一尘不染

您需要从WatchKey获取父目录以解析完整路径

WatchKey key;
WatchEvent<Path> event;

Path dir = (Path)key.watchable();
Path fullPath = dir.resolve(event.context());

这段代码看起来像需要随附的文档一样,仅凭其本身就没有多大意义。他们对这种特定API设计的意图是什么?

这仅仅是可能不直观的用法的开始。Java的文件监视程序API在主观上不如其他库。

2020-12-03