遞迴實現刪除某個資料夾下的所有檔案和目錄,包括刪除本身。
核心程式碼:
/***
* 刪除指定資料夾下所有檔案
*
* @param path
* 資料夾相對路徑
* @return
*/
public static boolean delAllFile(String path) {
boolean flag = false;
File file = new File(path);
if (!file.exists()) {
return flag;
}
if (!file.isDirectory()) {
return flag;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path + File.separator + tempList[i]);// 先刪除資料夾裡面的檔案
delFolder(path + File.separator + tempList[i]);// 再刪除空資料夾
flag = true;
}
}
return flag;
}
/***
* 刪除資料夾
*
* @param folderPath資料夾相對路徑
*/
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath); // 刪除完裡面所有內容
String filePath = folderPath;
filePath = filePath.toString();
File myFilePath = new File(filePath);
myFilePath.delete(); // 刪除空資料夾
} catch (Exception e) {
e.printStackTrace();
}
}