在Android中移动目录的最快方法?

时间:2012-04-25 17:22:28

标签: android

在Android中移动目录的最快方法是什么?在大多数情况下,但并非所有情况下,源和目标都位于同一个SD卡文件系统中。

目前,我的代码遍历整个目录结构,并将每个文件的内容复制到新位置中具有相同名称的新文件中。然后验证文件大小是否匹配,然后删除源文件。

对于每个文件,我当前运行(带有额外的异常处理):

    try{
      source = new FileInputStream(fileFrom).getChannel();
      destination = new FileOutputStream(fileTo).getChannel();
      destination.transferFrom(source, 0, source.size());
    } finally {
      source.close();
      destination.close();
    }

对于我希望在原始文件系统级别上进行简单的即时“节点修改”​​的计算工作,这看起来似乎很慢。

1 个答案:

答案 0 :(得分:5)

只要文件位于同一个文件系统上,您就可以实际移动它们File#renameTo(File)

if (!fileFrom.renameTo(fileTo)) {
    copy(fileFrom, fileTo);
    // delete(fileFrom);
}