• 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 }
  • 相关阅读:
    线程池ThreadPoolExecutor
    常用引擎+存储过程
    在浏览器中输入www.baidu.com后执行的全过程
    win端git连接私服仓库+上传本地项目+从服务器下载文件到win
    TCP的三次握手和四次挥手+TCP和UDP的区别
    2017网易---计算糖果
    ubuntu下wireshark+scapy+tcpreply
    网易2017---数列还原
    2017网易---藏宝图
    2017网易---不要二
  • 原文地址:https://www.cnblogs.com/wbxk/p/6693775.html
Copyright © 2020-2023  润新知