我正在尝试找出一种在Android设备中查找可移动SD卡的方法。我发现了几种可以提供持续良好结果的方法。有时我发现两个不同的文件路径似乎指向完全相同的位置。
例如:
/mnt/sdcard
和
/storage/sdcard0
似乎指向某些设备上的相同位置。我的结论是其中一个是别名,但两者都可以用来写入SD卡。我不太熟悉别名的使用,但是否有办法找出其中一个或两个文件是否为别名?是否可以确定“真实”文件路径?
我知道Android是基于Linux内核构建的,并采用了一些文件系统约定。有没有一种标准的Linux方式呢?
答案 0 :(得分: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());
}