检测Java的一个符号链接[复制]

问题描述 投票:19回答:2

这个问题已经在这里有一个答案:

鉴于一个Java“文件”的对象,我怎么能检测是否它是指一个符号链接?

(如果它有助于/事宜,我知道文件是指一个目录,而不是一个文件)

java unix filesystems symlink
2个回答
20
投票

你也可以使用isSymbolicLink(Path path)方法。它会更可靠。

java.io.File file = ...;
boolean isSymbolicLink = Files.isSymbolicLink(file.toPath());

从Java文档“Detecting a Symbolic Link”类似的例子。


33
投票

File.getCanonicalPath()解析符号链接

一个规范路径名是绝对和唯一的。正则形式的精确定义是依赖于系统的。该方法首先此路径名转换为绝对形式如果必要的话,就好象通过调用getAbsolutePath()方法,然后将其映射到其独特的形式在一个系统相关的方式。这通常涉及删除冗余的名称,如“”。和“..”从路径,解析符号链接(在UNIX平台),以及将驱动器号标准的情况下(在Microsoft Windows平台)。

我想你可以比较getCanonicalPath()getAbsolutePath()的结果。

更新:看来这个问题已经被问 - 检查the answers there

© www.soinside.com 2019 - 2024. All rights reserved.