我正在掃描從「/」開始的所有目錄,以找到像「MYFOLDER」這樣的特定目錄。但是,該文件夾是我得到同一文件夾的雙重實例。這是因爲一個文件夾位於「/ mnt/sdcard/MYFOLDER」中,同一個文件夾在「/ sdcard/MYFOLDER」中有一個符號鏈接。文件夾是不是符號鏈接?「。請給我一些建議..android:確定一個符號鏈接
回答
這基本上是他們Apache Commons怎麼辦(受their license):
public static boolean isSymlink(File file) throws IOException {
File canon;
if (file.getParent() == null) {
canon = file;
} else {
File canonDir = file.getParentFile().getCanonicalFile();
canon = new File(canonDir, file.getName());
}
return !canon.getCanonicalFile().equals(canon.getAbsoluteFile());
}
編輯感謝@LarsH評論。 以上代碼僅檢查子文件是否符號鏈接。
爲了回答這個問題,OP,那就更簡單了:
public static boolean containsSymlink(File file) {
return file.getCanonicalFile().equals(file.getAbsoluteFile());
}
一個有用的答案,+1。任何想法爲什麼他們檢查父文件,並使用父母的getCanonicalFile(),而不是總是隻使用canon = file?它是否與「如果一個路徑元素不存在(或不可搜索),解釋規範化作爲文本操作之間存在衝突(其中」a /../ b「是」b「,即使」a 「 不存在) 。」? – LarsH
哦,我明白了......這是爲了確定文件路徑中的* last component *是否是符號鏈接...而不是文件路徑中的任何組件是否是符號鏈接。我認爲在OP的情況下,我們會希望後者,在這種情況下,我們會放棄此函數的'else'子句。 – LarsH
@LarsH好點!我編輯了答案。 – rds
- 1. 如何確定目錄是一個符號鏈接
- 2. sbcl確定是否符號鏈接
- 3. 不符號鏈接符號鏈接目錄中的一個或兩個文件
- 4. .htaccess或符號鏈接(符號鏈接)
- 5. 鏈接器如何確定在哪一行調用符號?
- 6. 兩個符號鏈接之間的符號鏈接
- 7. 符號鏈接
- 8. 符號鏈接
- 9. 如何正確鏈接符號
- 10. Android Studio XML符號不再正確鏈接
- 11. 爲什麼我的Android lib目錄符號鏈接不正確?
- 12. Android init.rc:無法創建符號鏈接
- 13. 符號鏈接自
- 14. Broken符號鏈接
- 15. 符號鏈接perl
- 16. 符號鏈接CMake
- 17. 未定義的符號,即使有明確的鏈接
- 18. 如何確定符號鏈接指向的文件的路徑?
- 19. 確定unix系統上的符號鏈接
- 20. 在Android中創建硬鏈接和符號鏈接
- 21. python - 導入一個文件是一個符號鏈接
- 22. 混帳:提交一個符號鏈接到一個文件夾
- 23. node_modules:符號鏈接還是不符號鏈接?
- 24. 將相對符號鏈接轉換爲絕對符號鏈接
- 25. Apache的符號鏈接符號鏈接返回HTTP 500錯誤
- 26. 符號鏈接到符號鏈接...部分規範化
- 27. 鏈接拋出未定義的符號
- 28. C++鏈接錯誤,符號重定義
- 29. 鏈接boost&mygui 3.2.1未定義符號
- 30. ___sincos_stret鏈接時未定義的符號
,你能告訴我們的代碼? –
你可以在這裏檢查:http://stackoverflow.com/questions/813710/java-1-6-determine-symbolic-links。它可能會幫助你! –
先生,沒有什麼具體的代碼..我有一個非常簡單的問題。您使用listFiles()函數掃描目錄。但是,有兩個同名的目錄,即/ mnt/scard和/ sdcard。一個是與另一個的象徵聯繫。我只是想知道是否有任何區分這兩種方式..有什麼辦法知道該文件夾是一個符號鏈接..非常感謝你 – Farhan