工具代码

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

Java 实现删除文件工具类的更多相关文章

  1. Java读取properties文件工具类并解决控制台中文乱码

    1.建立properts文件(error.message.properties) HTTP201= 请求成功并且服务器创建了新的资源 2.在spring-mvc.xml文件(applicationCo ...

  2. java学习_文件工具类

    工具类里面的方法全部都是静态的,调用的时候不需要实例化

  3. java上传文件工具类

    这个是之前整理之前所学时与使用java向邮箱发送邮件一块找到的,一起贴出来供大家参考: import java.awt.image.BufferedImage; import java.io.File ...

  4. java读取.txt文件工具类FileUtiles

    public class FileUtils { private static final String ENCODING = "UTF-8";//编码方式 /** * 获取文件的 ...

  5. FileUtils 文件工具类

    FileUtils 下载jar中的文件 package com.meeno.chemical.common.utils; import lombok.extern.slf4j.Slf4j; impor ...

  6. Java常用工具类---IP工具类、File文件工具类

    package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...

  7. 自动扫描FTP文件工具类 ScanFtp.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  8. 读取Config文件工具类 PropertiesConfig.java

    package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...

  9. java文件工具类

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

随机推荐

  1. 29 _react-router说明

    一.SPA的理解 1.单页面web应用(single page web application ,SPA) 2.整个应用只有一个完整的页面 3.点击页面中的链接不会刷新页面,本身也不会向服务器发请求 ...

  2. java 流转换BASE64的一些问题

    java 转换BASE64过程中,出现很多结尾为空的问题!暂时不清楚为什么会这样- ``` java //根据url地址转换成BASE64 public static String getURLIma ...

  3. Nginx隐藏标识以及其版本号

    1.隐藏版本号 curl Nginx服务器时,有这么一行Server: nginx,说明我用的是 Nginx 服务器,但并没有具体的版本号.由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以 ...

  4. .do的消除

    其实就是在web.xml中去掉.do即可  那里有拦截器作用,什么样的文件可以进入前端控制器1

  5. Echarts 柱状图属性详解

    <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init ...

  6. IDEA 工具从Json自动生成JavaBean

    1.先安装GsonFormat插件:File-->Setting-->Plugins-->GsonFormat-->OK 2.new 一个新的Class空文件,然后 Alt+I ...

  7. php 计算 距离

    function getdistance($lng1,$lat1,$lng2,$lat2){ //将角度转为狐度 $radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为 ...

  8. openvpn显示连接成功但是无法进行git操作

    使用openvpn连接公司内网以进行git操作.以管理员身份运行openvpn gui,一段时间后提示连接成功,右下角图标变成绿色,但是进行git操作,每次都发生失败,提示连接不上.右键点击openv ...

  9. python生成器(generator)、迭代器(iterator)、可迭代对象(iterable)区别

    三者联系 迭代器(iterator)是一个更抽象的概念,任何对象,如果它的类有next方法(next python3)和__iter__方法返回自己本身,即为迭代器 通常生成器是通过调用一个或多个yi ...

  10. 搭建中小规模集群之rsync数据同步备份

    NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快 ...