4

在 Android 中移动目录的最快方法是什么?在大多数(但不是所有)情况下,源和目标位于同一个 sdcard 文件系统上。

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

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

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

对于我期望的可能是原始文件系统级别的简单即时“节点修改”​​,这似乎很慢以及大量计算工作的方式。

4

1 回答 1

8

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

if (!fileFrom.renameTo(fileTo)) {
    copy(fileFrom, fileTo);
    // delete(fileFrom);
}
于 2012-04-25T17:26:32.550 回答