代码之家  ›  专栏  ›  技术社区  ›  Matt Sheppard

Java中的一个链接检测

  •  19
  • Matt Sheppard  · 技术社区  · 14 年前

    给定Java的“文件”对象,我如何检测它是否引用了一个SyLink?

    (如果有用/重要,我知道该文件引用的是目录,而不是文件)

    2 回复  |  直到 6 年前
        1
  •  32
  •   Community kfsone    7 年前

    File.getCanonicalPath() 解析符号链接

    规范路径名既绝对又唯一。规范形式的精确定义依赖于系统。如果需要,此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以系统依赖的方式将其映射到其唯一形式。这通常涉及从路径名中删除多余的名称,如“.”和“.”,解析符号链接(在UNIX平台上),以及将驱动器号转换为标准大小写(在Microsoft Windows平台上)。

    我想你可以比较一下 getCanonicalPath() getAbsolutePath() .

    更新:似乎已经问过这个问题-检查 the answers there

        2
  •  17
  •   Wayne    11 年前

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

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

    类似于Java文档的例子 Detecting a Symbolic Link '.