1. 程式人生 > >Java之File如何刪除檔案和資料夾方法

Java之File如何刪除檔案和資料夾方法

 boolean
          刪除此抽象路徑名錶示的檔案或目錄。

刪除檔案:存在檔案則直接刪除返回true,如果不存在返回false
刪除目錄:
   ①:為空:直接刪除
   ②:不為空:刪不掉 (需要先刪除資料夾裡面所有檔案,再刪除資料夾)
   ③:不存在直接返回false
注意:delete方法 ==》直接從磁碟中刪除,不能像回收站一樣可以恢復!!

/**
 * File刪除檔案和資料夾方法:
 *  1.刪除檔案:存在檔案則直接刪除返回true,如果不存在返回false
 *  2.刪除目錄:
 *    ①:為空:直接刪除
 *    ②:不為空:刪不掉 (需要先刪除資料夾裡面所有檔案,再刪除資料夾)
 *    ③:不存在直接返回false
 * 注意:delete方法 ==》直接從磁碟中刪除,不能像回收站一樣可以恢復!!
 * @author 鄭清
 */
public class Demo {
	 
	public static void main(String[] args) {
		//刪除D:/1 路徑下的1.txt檔案
		File file = new File("D:/1/1.txt");
		System.out.println(file.delete());
		
		//刪除D:/1 路徑下的新建資料夾  為空的話可直接使用delete方法刪除
		File file2 = new File("D:/1/新建資料夾");
		System.out.println(file2.delete());
		
		//刪除D:/1 路徑下的新建資料夾2  不為空的情況下 ==》deleteFile 先刪除資料夾裡的所有檔案 再刪除資料夾
		File file3 = new File("D:/1/新建資料夾2");
		deleteFile(file3);
	}
	/*
	 * 如果是檔案 ==》直接刪除
	 * 如果是目錄 ==》必須先刪除裡面每一層目錄裡的所有檔案,最後才能刪除外層的目錄
	 *              原因:不為空的話 刪不了
	 */
	public static void deleteFile(File file) {
		if(file.exists()) {//判斷路徑是否存在
			if(file.isFile()){//boolean isFile():測試此抽象路徑名錶示的檔案是否是一個標準檔案。 
				file.delete();
			}else{//不是檔案,對於資料夾的操作
				//儲存 路徑D:/1/新建資料夾2  下的所有的檔案和資料夾到listFiles陣列中
				File[] listFiles = file.listFiles();//listFiles方法:返回file路徑下所有檔案和資料夾的絕對路徑
				for (File file2 : listFiles) {
					/*
					 * 遞迴作用:由外到內先一層一層刪除裡面的檔案 再從最內層 反過來刪除資料夾
					 *    注意:此時的資料夾在上一步的操作之後,裡面的檔案內容已全部刪除
					 *         所以每一層的資料夾都是空的  ==》最後就可以直接刪除了
					 */
					deleteFile(file2);
				}
			}
			file.delete();
		}else {
			System.out.println("該file路徑不存在!!");
		}
	}

}