溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java怎么刪除文件

發(fā)布時(shí)間:2020-06-25 15:18:35 來源:億速云 閱讀:327 作者:Leah 欄目:編程語(yǔ)言

java怎么刪除文件?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

package test816;
 
import java.io.File;
 
/**
 * 
 * 刪除文件或目錄
 * 
 */
 
public class DeleteFileUtil {
	/**
	 * 刪除文件,可以是單個(gè)文件或文件夾
	 * 
	 * @param fileName
	 *            待刪除的文件名
	 * @return 文件刪除成功返回true,否則返回false
	 */
	public static boolean delete(String fileName) {
		File file = new File(fileName);
		if (!file.exists()) {
			System.out.println("刪除文件失?。?quot; + fileName + "文件不存在");
			return false;
		} else {
			if (file.isFile()) {
 
				return deleteFile(fileName);
			} else {
				return deleteDirectory(fileName);
			}
		}
	}
 
	/**
	 * 刪除單個(gè)文件
	 * 
	 * @param fileName
	 *            被刪除文件的文件名
	 * @return 單個(gè)文件刪除成功返回true,否則返回false
	 */
	public static boolean deleteFile(String fileName) {
		File file = new File(fileName);
		if (file.isFile() && file.exists()) {
			file.delete();
			System.out.println("刪除單個(gè)文件" + fileName + "成功!");
			return true;
		} else {
			System.out.println("刪除單個(gè)文件" + fileName + "失??!");
			return false;
		}
	}
 
	/**
	 * 刪除目錄(文件夾)以及目錄下的文件
	 * 
	 * @param dir
	 *            被刪除目錄的文件路徑
	 * @return 目錄刪除成功返回true,否則返回false
	 */
	public static boolean deleteDirectory(String dir) {
		// 如果dir不以文件分隔符結(jié)尾,自動(dòng)添加文件分隔符
		if (!dir.endsWith(File.separator)) {
			dir = dir + File.separator;
		}
		File dirFile = new File(dir);
		// 如果dir對(duì)應(yīng)的文件不存在,或者不是一個(gè)目錄,則退出
		if (!dirFile.exists() || !dirFile.isDirectory()) {
			System.out.println("刪除目錄失敗" + dir + "目錄不存在!");
			return false;
		}
		boolean flag = true;
		// 刪除文件夾下的所有文件(包括子目錄)
		File[] files = dirFile.listFiles();
		for (int i = 0; i < files.length; i++) {
			// 刪除子文件
			if (files[i].isFile()) {
				flag = deleteFile(files[i].getAbsolutePath());
				if (!flag) {
					break;
				}
			}
			// 刪除子目錄
			else {
				flag = deleteDirectory(files[i].getAbsolutePath());
				if (!flag) {
					break;
				}
			}
		}
 
		if (!flag) {
			System.out.println("刪除目錄失敗");
			return false;
		}
 
		// 刪除當(dāng)前目錄
		if (dirFile.delete()) {
			System.out.println("刪除目錄" + dir + "成功!");
			return true;
		} else {
			System.out.println("刪除目錄" + dir + "失??!");
			return false;
		}
	}
	// 刪除文件夾
	// param folderPath 文件夾完整絕對(duì)路徑
 
	public static void delFolder(String folderPath) {
		try {
			delAllFile(folderPath); // 刪除完里面所有內(nèi)容
			String filePath = folderPath;
			filePath = filePath.toString();
			java.io.File myFilePath = new java.io.File(filePath);
			myFilePath.delete(); // 刪除空文件夾
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
	// 刪除指定文件夾下所有文件
	// param path 文件夾完整絕對(duì)路徑
	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 + "/" + tempList[i]);// 先刪除文件夾里面的文件
				delFolder(path + "/" + tempList[i]);// 再刪除空文件夾
				flag = true;
			}
		}
		return flag;
	}
 
	public static void main(String[] args) {
		// String fileName = "g:/temp/xwz.txt";
		// DeleteFileUtil.deleteFile(fileName);
		String fileDir = "D:\\temp\\pom.xml";
		// DeleteFileUtil.deleteDirectory(fileDir);
		DeleteFileUtil.delete(fileDir);
		DeleteFileUtil t = new DeleteFileUtil();
		delFolder("c:/bb");
		System.out.println("deleted");
 
	}
}

關(guān)于java怎么刪除文件問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI