2010-03-22 89 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