如何检查两个路径是否在同一个挂载点上?

Jak*_*son 5 java file-io android

我需要在android文件系统中将文件从一个目录移动到另一个目录.如何以编程方式检查两个路径是否在同一个挂载点上?

我想知道这个的原因是因为如果它们是,我们需要复制位而不是使用File.rename(newPath).

路径位于不同挂载点时的示例:

  • 用户想要将文件从内部存储器移动到外部存储器.

  • 用户想要将文件从/ sdcard/files移动到samsungdevice上的/ sdcard/external_sd/files.

Dav*_*rtz 5

打电话File.rename.如果成功,它们就在同一个挂载点上.

  • 这是一种方法.但是如果它失败了 - 它可能出于其他原因而不是在不同的挂载点上. (2认同)
  • 我怀疑这很重要.无论出于何种原因,它都会失败,你几乎想要做同样的事情 - 尝试自己复制并仅在失败时报告错误. (2认同)

小智 2

在 Android 应用程序中确定文件驻留在哪个文件系统的一种方法是:

  • 通过调用 File.getCanonicalPath() 获取文件的规范路径。

  • 然后从 /proc/mounts 获取当前安装的文件系统及其安装点路径的列表

  • 并找到哪个挂载点路径是与相关文件的规范路径最完整的字符串匹配,这应该为您提供文件的挂载点/文件系统。

比较两个文件的结果。