2013-03-14 71 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