3
如果symlink
是对应于一个符号链接文件对象,则:如何读取断开的符号链接指向的路径?
File target = symlink.getCanonicalPath();
…成功返回它指向的目标。 Paths#toRealPath()
也适用于相同的情况。
但是,如果符号链接断开(悬摆),则上述两个API均无法返回代表它指向的(不存在的)事件的File
(或Path
)。
我正在写一个工具,需要能够读取这些值,即使对于悬挂符号链接。我用什么API来获取符号链接指向的文件或目录(不管符号链接是正确还是破坏)?
更新基于接受的答案,可以使用获得的符号链接的目标(甚至破一个):
Path target = Files.readSymbolicLink(Paths.get("/some/directory/symlink"));
…如果target
是那么相对的,你可以去参考它的基础上放置符号本身是做找到位置的内容:
Paths.get("/some/directory/symlink").resolveSibling(".").resolve(target);