Android遞迴刪除資料夾下所有檔案

王世暉發表於2016-03-14

在做App客戶端apk安裝包自動更新自動下載的時候,如果每次檢測到有更新並自動下載,但是使用者在下載完成後並不安裝新包,這樣多次檢測後會下載多個安裝包,造成垃圾資料。因此需要在下載前刪除之前的下載資料。需要一個刪除某一資料夾下所有檔案的方法。

/**
 * 遞迴刪除檔案和資料夾
 * @param file    要刪除的根目錄
 */
public void RecursionDeleteFile(File file){
    if(file.isFile()){
        file.delete();
        return;
    }
    if(file.isDirectory()){
        File[] childFile = file.listFiles();
        if(childFile == null || childFile.length == 0){
            file.delete();
            return;
        }
        for(File f : childFile){
            RecursionDeleteFile(f);
        }
        file.delete();
    }
}
呼叫方法:

/*刪除以前下載的安裝包*/
RecursionDeleteFile(new File(Environment.getExternalStorageDirectory() + "/download/youni/"));
這樣將會遞迴刪除系統預設下載目錄下youni資料夾下的所有檔案

相關文章