java.nio.file.WatchEvent只给我相对路径。如何获取修改后文件的绝对路径?
2022-09-01 04:08:01
我使用的是 Java 7,以及 .注册后,当我轮询ENTRY_MODIFY事件时,我无法到达事件的文件的绝对路径。有没有办法从 WatchEvent 对象获取文件的绝对路径?java.nio.file.WatchEvent
WatchService
我使用的是 Java 7,以及 .注册后,当我轮询ENTRY_MODIFY事件时,我无法到达事件的文件的绝对路径。有没有办法从 WatchEvent 对象获取文件的绝对路径?java.nio.file.WatchEvent
WatchService
您需要从 WatchKey 获取父目录才能解析完整路径
WatchKey key;
WatchEvent<Path> event;
Path dir = (Path)key.watchable();
Path fullPath = dir.resolve(event.context());
这段代码读起来就像它需要随附的文档才能掌握,它本身就没有多大意义。他们对这个特定的API设计有什么意图?
而这仅仅是可能不直观用法的开始。Java的文件观察器API在主观上不如替代库。
当然,您可能希望监视多个目录(例如,监视文件树的更改),存储已注册的目录并将其关联到一个中,这也是一个可行的解决方案。WatchKey
Path
Map<WatchKey, Path>
当一个事件被触发时,可以要求与给定的相关联,然后更改的文件可以在与相关联的帮助下解决。Map
Path
WatchKey
Path
Path
WatchKey