Java 檔案和目錄全部刪除
阿新 • • 發佈:2018-12-14
需求:刪除指定目錄的檔案和資料夾
步驟:首先需要遍歷出所有的資料夾和檔案,然後判斷是否為檔案【是檔案則直接刪除,是目錄的話 “遞迴”,再次呼叫本函式,知道刪除所有檔案】,刪除所有檔案後,在它迴圈外刪除目錄。
主要部分程式碼:
package FilePage; import java.io .File; import java.io .IOException; public class DelFile { public static void main(String[] args) throws IOException{ File f=new File("A"); delFile(f);//封裝程式碼 } //刪除 public static void delFile(File f){ if(!f.exists()){return;}//判斷是否存在這個目錄 File [] f_Arr=f.listFiles();//獲取目錄的所有路徑表示的檔案 for(File f_val : f_Arr){ System.out.println(f_val.getName()); //遞迴 if(f_val.isDirectory()){ delFile(f_val);//遞迴呼叫自己 } f_val.delete();//不是資料夾則刪除該檔案 } f.delete();//刪除該目錄 } }
全部程式碼,建立資料夾,再刪除整個檔案和資料夾:
package FilePage; import java.io .File; import java.io .IOException; public class DelFile { public static void main(String[] args) throws IOException{ File f=new File("A"); delFile(f); // addFile(); //System.out.println(f.delete()); } //新增資料夾 public static void addFile() throws IOException{ File f=new File("A"); f.mkdir(); File f1=new File("A/A.txt"); f1.createNewFile(); File f_b=new File("A/B"); f_b.mkdirs(); File f_b1=new File("A/B/B.txt"); f_b1.createNewFile(); File f_c=new File("A/C"); f_c.mkdirs(); File f_c1=new File("A/C/C.txt"); f_c1.createNewFile(); } //刪除 public static void delFile(File f){ if(!f.exists()){return;} //if(!f.isDirectory()){return;} //獲取當前目錄下的所有檔案 File [] f_Arr=f.listFiles(); for(File f_val : f_Arr){ System.out.println(f_val.getName()); //遞迴 if(f_val.isDirectory()){ delFile(f_val); }else{ f_val.delete(); } f_val.delete(); } f.delete(); } }