package com.tydic.main.util; import java.io.File; public class DeleteFileUtil { /** * 刪除文件,能夠是單個文件或文件夾 * @param fileName 待刪除的文件名 * @return 文件刪除成功返回true,不然返回false */ public static boolean delete(String fileName){ File file = new File(fileName); if(!file.exists()){ System.out.println("刪除文件失敗:"+fileName+"文件不存在"); return false; }else{ if(file.isFile()){ return deleteFile(fileName); }else{ return deleteDirectory(fileName); } } } /** * 刪除單個文件 * @param fileName 被刪除文件的文件名 * @return 單個文件刪除成功返回true,不然返回false */ public static boolean deleteFile(String fileName){ File file = new File(fileName); if(file.isFile() && file.exists()){ file.delete(); System.out.println("刪除單個文件"+fileName+"成功!"); return true; }else{ System.out.println("刪除單個文件"+fileName+"失敗!"); return false; } } /** * 刪除目錄(文件夾)以及目錄下的文件 * @param dir 被刪除目錄的文件路徑 * @return 目錄刪除成功返回true,不然返回false */ public static boolean deleteDirectory(String dir){ //若是dir不以文件分隔符結尾,自動添加文件分隔符 if(!dir.endsWith(File.separator)){ dir = dir+File.separator; } File dirFile = new File(dir); //若是dir對應的文件不存在,或者不是一個目錄,則退出 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; } //刪除當前目錄 if(dirFile.delete()){ System.out.println("刪除目錄"+dir+"成功!"); return true; }else{ System.out.println("刪除目錄"+dir+"失敗!"); return false; } } public static void main(String[] args) { //String fileName = "g:/temp/xwz.txt"; //DeleteFileUtil.deleteFile(fileName); String fileDir = "G:/temp/temp0/temp1"; //DeleteFileUtil.deleteDirectory(fileDir); DeleteFileUtil.delete(fileDir); } }