2012-04-25 15 views
3

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

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

、私は(追加の例外処理で)現在の実行:

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

これが遅いだけでなく、私は多分、単純な瞬間「ノード可能性が期待するもののために多くの計算作業への道であると思われますRAWファイルシステムレベルで「変更」します。

答えて

4

ファイルが同じファイルシステム上にある限り、実際にはFile#renameTo(File)を移動することができます。

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

これは可能ですが、戻り値がfalseでないことを確認してください。 falseの場合は、ファイル/フォルダをコピーします。 –

+0

答えとして受け入れられます。ありがとうございました。 10分のコピーは10秒のコピーになりました。 ;-) – starvingmind

+0

メソッドコピーを定義しませんでした。 – coolcool1994

関連する問題