2011-11-13 49 views
5

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

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

实施例时的路径是不同的安装点:

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

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

回答

2

之一,以确定方式,也文件系统中的文件从Android应用程序内驻留在:

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

  • 然后得到当前安装的文件系统的目录从/ proc /坐骑

  • ,并找到该安装点的路径是有问题的文件的规范路径最完整的字符串匹配&其挂载点的路径,这应该给你文件的挂载点/文件系统。

比较两个文件的结果。

5

请致电File.rename。如果成功,它们位于相同的挂载点。

+2

这是一条路。但是如果失败 - 可能是因为其他原因而不是在不同的挂载点上。 –

+2

我怀疑这件事。无论出于何种原因,它都会失败,您几乎会想要做同样的事情 - 只有在失败时才尝试自己复制并报告错误。 –

相关问题