在Java 1.6 中確定符號連結
在UNIX 系統上工作的DirectoryWalker 類別的上下文中,確定File 🎜>在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中文網其他相關文章!