Mat*_*ard 19 java unix filesystems symlink
给定Java'File'对象,我如何检测它是否引用符号链接?
(如果它有帮助/重要,我知道文件是指目录,而不是文件)
Boz*_*zho 33
File.getCanonicalPath()
解析符号链接
规范路径名既是绝对的,也是唯一的.规范形式的精确定义取决于系统.如果需要,此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以依赖于系统的方式将其映射到其唯一形式.这通常涉及删除冗余名称,例如"." 和路径名中的"..",解析符号链接(在UNIX平台上),并将驱动器号转换为标准情况(在Microsoft Windows平台上).
我想你可以比较的结果getCanonicalPath()
和getAbsolutePath()
.
更新:似乎已经问过这个问题 - 检查那里的答案
小智 21
您还可以使用isSymbolicLink(路径路径)方法.它会更可靠.
java.io.File file = ...;
boolean isSymbolicLink = Files.isSymbolicLink(file.toPath());
Run Code Online (Sandbox Code Playgroud)
来自Java Doc' 检测符号链接 '的类似示例.