当前位置: 首页 > 面试题库 >

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

皮自明
2023-03-14
问题内容

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


问题答案:

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

WatchKey key;
WatchEvent<Path> event;

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

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

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



 类似资料:
  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做

  • 问题内容: 键入标题时,我注意到有关此问题的一些类似问题,但它们似乎不在PHP中。那么用PHP函数解决该问题的方法是什么? 待指定。 有什么好主意吗?谢谢。 问题答案: 试试这个: 这将给 和 和 和

  • V1.1.1新增 sp_asset_relative_url($asset_url) 功能: 获取文件相对路径 参数: $asset_url:文件URL 返回 类型字符串,带协议的绝对地址直接返回原来的值,否则会转化为相对于系统upload 目录的文件路径 实例 <?php $file='/data/upload/1.png';//文件路径 $path=sp_asset_relative_url

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 本文向大家介绍获取Java中文件的绝对路径,包括了获取Java中文件的绝对路径的使用技巧和注意事项,需要的朋友参考一下 方法java.io.File.getAbsolutePath()用于获取字符串形式的文件的绝对路径。此方法不需要任何参数。 演示此的程序如下所示- 示例 上面程序的输出如下- 输出结果 现在让我们了解上面的程序。 使用方法java.io.File.getAbsolutePath(

  • 问题内容: 我在两个不同的目录中有两个文件,一个是,另一个是。我使用以下代码压缩它们: 我打开zip文件后,我创造,我有一个在它的文件夹,然后有两个子文件夹在里面,和,则PDF文件。我不知道如何仅包含两个pdf文件,而不是将完整路径压缩到zip存档中。我希望我的问题很清楚,请帮忙。谢谢。 问题答案: zipfile write()方法支持一个额外的参数(arcname),该参数是要存储在zip文件