4

Androidでディレクトリを移動する最速の方法は何ですか? すべてではありませんが、ほとんどの場合、ソースと宛先は同じ SD カード ファイル システム上にあります。

現在、私のコードはディレクトリ構造全体を調べ、各ファイルの内容を新しい場所にある同じ名前の新しいファイルにコピーします。次に、ファイル サイズが一致することを確認し、ソース ファイルを削除します。

ファイルごとに、現在実行しています(追加の例外処理を使用):

    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 に答える