2013-03-14 35 views
1

我想找出一種在Android設備中查找可移動SD卡的方法。我發現了幾種提供一致好的結果的方法。有時我會發現兩個不同的文件路徑似乎指向完全相同的位置。如何知道文件名是否是Android中的別名?

例如:

/mnt/sdcard/storage/sdcard0

出現以指向在某些設備上的相同位置。我的結論是,其中一個是別名,但都可以用來寫入SD卡。我對使用別名不太熟悉,但有沒有辦法找出這兩個文件中的一個還是兩個都是別名?是否有可能確定「真實」的文件路徑?

我知道Android是建立在Linux內核上的,並且已經採用了一些文件系統約定。有沒有一種標準的Linux方式來做到這一點?

+2

我想你的意思是@timmied一個符號鏈接 – Timmetje 2013-03-14 16:07:05

+1

:這也可能是一個硬鏈接。 – CommonsWare 2013-03-14 16:15:00

+0

我知道它是一個符號鏈接,沒有它的資源a.t.m.在XDA-devs的某個地方閱讀它但是我們能否用類似的腳本輕鬆檢測它是什麼? – Timmetje 2013-03-14 16:26:27

回答

3

我認爲你的意思是符號鏈接。

這主要是他們在Apache Commons怎麼辦(受their license):

在這個問題的答案也提到:Java 1.6 - determine symbolic links

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()); 
} 
+0

嗯,當你引用其他答案在這裏,並鏈接到它的來源,是不是這是Mr.Me的答案重複? – Sam 2013-03-14 16:14:07

+1

不,這是對問題的實際答案。然而,答案是許多其他好的答案的重複,這些答案是用於重複這樣的問題。可能這個問題不會被標記爲重複(我標記),人們仍然可以看到正確的答案。 – Timmetje 2013-03-14 16:15:24

相關問題