工具代码
1 package com.wangbo; 2 3 import java.io.File; 4 5 /** 6 * 删除目录或文件工具类 7 * @author wangbo 8 * @date 2017-04-11 15:59:30 9 */ 10 public class FileDelUtil { 11 12 13 /** 14 * 入口方法 15 * 根据路径删除指定的目录或文件,无论存在与否 16 * @param path 要删除的目录或文件路径 17 * @return 删除成功返回 true,否则返回 false。 18 */ 19 public static boolean deleteFolder(String path) { 20 //验证字符串是否为正确路径名的正则表达式 21 String regex = "[A-Za-z]:\\[^:?"><*]*"; 22 if (path == null || !path.matches(regex)) { 23 System.out.println("path=" + path); 24 return false; 25 } 26 File file = new File(path); 27 //判断目录或文件是否存在 28 if (!file.exists()) { 29 return false; 30 } else { 31 //判断是否为文件 32 if (file.isFile()) { 33 return deleteFile(path); 34 } else { 35 return deleteDirectory(path); 36 } 37 } 38 } 39 40 /** 41 * 删除单个文件 42 * @param path 被删除文件的文件名 43 * @return 单个文件删除成功返回true,否则返回false 44 */ 45 private static boolean deleteFile(String path) { 46 File file = new File(path); 47 //路径为文件且不为空则进行删除 48 if (file.isFile() && file.exists()) { 49 file.delete(); 50 return true; 51 } 52 return false; 53 } 54 55 /** 56 * 删除目录(文件夹)以及目录下的文件 57 * @param path 被删除目录的文件路径 58 * @return 目录删除成功返回true,否则返回false 59 */ 60 private static boolean deleteDirectory(String path) { 61 //如果path不以文件分隔符结尾,自动添加文件分隔符 62 if (!path.endsWith(File.separator)) { 63 path = path + File.separator; 64 } 65 File dirFile = new File(path); 66 //如果dir对应的文件不存在,或者不是一个目录,则退出 67 if (!dirFile.exists() || !dirFile.isDirectory()) { 68 return false; 69 } 70 boolean flag = true; 71 //删除文件夹下的所有文件(包括子目录) 72 File[] files = dirFile.listFiles(); 73 for (int i = 0; i < files.length; i++) { 74 if (files[i].isFile()) {//删除子文件 75 flag = deleteFile(files[i].getAbsolutePath()); 76 }else { //删除子目录 77 flag = deleteDirectory(files[i].getAbsolutePath()); 78 } 79 if (!flag) return flag; 80 } 81 //删除当前目录 82 return dirFile.delete(); 83 } 84 85 }