首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.nio.file.WatchEvent只给了我相对路径。如何获取修改后文件的绝对路径?

java.nio.file.WatchEvent只给了我相对路径。如何获取修改后文件的绝对路径?
EN

Stack Overflow用户
提问于 2011-10-18 10:02:47
回答 4查看 10.9K关注 0票数 36

我使用的是Java7、java.nio.file.WatchEventWatchService。注册后,当我轮询ENTRY_MODIFY事件时,我无法获得该事件的文件的绝对路径。有没有办法从WatchEvent对象中获取文件的绝对路径?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-18 11:19:36

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

WatchKey key;
WatchEvent<Path> event;

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

这段代码读起来像是需要附带的文档才能理解,它本身没有什么意义。他们对这个特殊的API设计的意图是什么?

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

票数 111
EN

Stack Overflow用户

发布于 2015-10-06 14:20:41

假设您想要监视多个目录(例如,监视文件树的变化),在Map<WatchKey, Path>中存储已注册的WatchKey及其关联的Path也是一个可行的解决方案。

当事件被触发时,可以要求Map提供与给定WatchKey相关联的Path,然后可以在与WatchKey相关联的Path的帮助下解析更改的文件的Path

票数 2
EN

Stack Overflow用户

发布于 2011-10-18 10:26:37

深入挖掘你所拥有的对象,你可以得到它的绝对路径:

Path.toAbsolutePath()

File.getAbsoluteFile()

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7801662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档