在Android中移动目录的最快方法是什么?在大多数情况下,但并非所有情况下,源和目标都位于同一个SD卡文件系统中。
目前,我的代码遍历整个目录结构,并将每个文件的内容复制到新位置中具有相同名称的新文件中。然后验证文件大小是否匹配,然后删除源文件。
对于每个文件,我当前运行(带有额外的异常处理):
try{
source = new FileInputStream(fileFrom).getChannel();
destination = new FileOutputStream(fileTo).getChannel();
destination.transferFrom(source, 0, source.size());
} finally {
source.close();
destination.close();
}
对于我希望在原始文件系统级别上进行简单的即时“节点修改”的计算工作,这看起来似乎很慢。
答案 0 :(得分:5)
只要文件位于同一个文件系统上,您就可以实际移动它们File#renameTo(File)。
if (!fileFrom.renameTo(fileTo)) {
copy(fileFrom, fileTo);
// delete(fileFrom);
}