在 Java 1.6 中确定符号链接
在 UNIX 系统上工作的 DirectoryWalker 类的上下文中,确定 File 实例是否是符号链接链接到目录可能具有挑战性。虽然提供的条件:
if (file.getAbsolutePath().equals(file.getCanonicalPath()))
可以作为指标,但可能并不完全可靠。
替代方法
更可靠Apache Commons 中采用的技术涉及将父目录的规范路径与文件本身的规范路径进行比较:
public static boolean isSymlink(File file) throws IOException { if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }
这里,规范路径和绝对路径之间的不匹配表明存在符号关联。但需要注意的是,该算法依赖于以下假设:
如果这些假设不成立,算法可能无法准确确定符号链接的存在。
以上是以下是一些标题选项,以'挑战”和问题格式进行: * 如何可靠地检测 Java 1.6 中的符号链接? * 它是符号链接吗? Java 1.6 Direct 的可靠方法的详细内容。更多信息请关注PHP中文网其他相关文章!