2012-04-25 34 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(); 
    } 

這似乎是緩慢和辦法不多的計算工作,爲我所期望的也許可以是一個簡單的瞬間「節點修改「在原始文件系統級別。

回答

4

只要文件在同一個文件系統上,您就可以將它們移動到File#renameTo(File)

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

您可以這樣做,但檢查返回值是否爲假。如果它是假的,則複製文件/文件夾。 – 2012-04-25 17:28:03

+0

接受爲答案。謝謝。 10分鐘拷貝成爲​​10秒拷貝。 ;-) – starvingmind 2012-04-25 17:33:09

+0

您沒有定義方法副本。 – coolcool1994 2014-12-15 12:39:03