2010-03-22 55 views

回答

28

File.getCanonicalPath()解析符号链接

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

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

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

+1

听起来像它可能工作 - 我不知道调用一个真正的文件系统对象是多么昂贵(我认为它必须检查树上的每个目录,因为我只关心最后一个)... – 2010-03-22 06:46:15

+1

谢谢 - 使用Apache的commons IO,如http://stackoverflow.com/questions/813710/java-1-6-determine-symbolic-links/813730#813730中所述,这似乎是一个很好的解决方案。 – 2010-03-22 23:56:17