Java 实现删除文件工具类

工具代码

 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 }

 

posted @ 2017-04-11 15:34  一线大码  Views(855)  Comments(0Edit  收藏  举报