1. 程式人生 > >Java 檔案和目錄全部刪除

Java 檔案和目錄全部刪除

需求:刪除指定目錄的檔案和資料夾

步驟:首先需要遍歷出所有的資料夾和檔案,然後判斷是否為檔案【是檔案則直接刪除,是目錄的話 “遞迴”,再次呼叫本函式,知道刪除所有檔案】,刪除所有檔案後,在它迴圈外刪除目錄。

主要部分程式碼:

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();
	}
}