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

时间:2011-11-13 11:07:41

标签: java android file-io

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

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

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

  • 用户希望将文件从内部存储移动到外部存储。

  • 用户希望将文件从/ sdcard / files移动到samsungdevice上的/ sdcard / external_sd /文件。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

确定文件驻留在Android应用中的文件系统的一种方法:

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

  • 然后获取当前挂载的文件系统列表&它们的挂载点路径来自/ proc / mounts

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

比较两个文件的结果。