我正在尝试找到Java中确定符号链接指向文件路径的方法。
我们有一个系统监视符号链接文件夹,根据文件名执行某些操作,然后删除该符号链接文件。
我需要做的是找出每个符号链接文件指向哪里,这样当删除符号链接时,也可以删除该文件。
这是在RHEL系统上使用Java语言。
如果有关API主题的任何指导,将不胜感激。我的搜索遇到了障碍。
Path realPath = aFile.toPath().toRealPath()
Path realPath = aPath().toRealPath()
使用toAbsolutePath
时需要注意的是,与之不同的是,toRealPath
会抛出IOException
异常,因为它实际上需要与文件系统交互以查找真实路径。
java.nio.file.Files.readSymbolicLink
可能是您需要的。
/usr/local/link -> ./file
表示/usr/local/file
。然后,Files.readSymbolicLink返回file
,而Paths.get("/usr/local/files").equals( Files.readSymbolicLink(Paths.get("/usr/local/link")))
为false。在这种情况下,我使用了Files.isSameFile(file, link)
。要获取链接目标文件的绝对路径,请使用link.toRealPath()
。 - juanmf