1 public static void delDir(File f) { 2 // 判斷是否是一個目錄, 不是的話跳過, 直接刪除; 如果是一個目錄, 先將其內容清空. 3 if(f.isDirectory()) { 4 // 獲取子文件/目錄 5 File[] subFiles = f.listFiles(); 6 // 遍歷該目錄 7 for (File subFile : subFiles) { 8 // 遞歸調用刪除該文件: 如果這是一個空目錄或文件, 一次遞歸就可刪除. 如果這是一個非空目錄, 多次 9 // 遞歸清空其內容后再刪除 10 delDir(subFile); 11 } 12 } 13 // 刪除空目錄或文件 14 f.delete(); 15 }
順便說一下, 64位的系統大概可以調用幾萬次遞歸. 我們基本上不會創建有一萬多層的目錄. 所以這種方法可以應對一般情況, 不會造成內存溢出等問題.