1

我正在尝试找出一种在 Android 设备中查找可移动 SD 卡的方法。我发现了几种可以提供始终如一的良好结果的方法。有时我会发现两个不同的文件路径似乎指向完全相同的位置。

例如:

/mnt/sdcard/storage/sdcard0

在某些设备上似乎指向同一位置。我的结论是其中一个是别名,但两者都可用于写入 SD 卡。我不太熟悉别名的使用,但有没有办法找出其中一个或两个文件是否是别名?是否可以确定“真实”文件路径?

我知道 Android 是基于 Linux 内核构建的,并且采用了一些文件系统约定。有没有标准的 Linux 方法可以做到这一点?

4

1 回答 1

3

我认为您的意思是符号链接。

这基本上是他们在Apache Commons中的做法(取决于他们的许可证):

此答案中还提到:Java 1.6 - 确定符号链接

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());
}
于 2013-03-14T16:11:22.347 回答