我怎么知道文件名是否是Android中的别名?

时间:2013-03-14 16:02:38

标签: android symlink

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

例如:

/mnt/sdcard/storage/sdcard0

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

我知道Android是基于Linux内核构建的,并采用了一些文件系统约定。有没有一种标准的Linux方式呢?

1 个答案:

答案 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());
}