Java操作文件夹的工具类

  1 import java.io.File;
  2
  3 public class DeleteDirectory {
  4
  5     /**
  6     * 删除单个文件
  7     * @param fileName 要删除的文件的文件名
  8     * @return 单个文件删除成功返回true,否则返回false
  9     */
 10     public static boolean deleteFile(String fileName) {
 11         File file = new File(fileName);
 12         // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
 13         if (!file.exists()){
 14             return true;
 15         }
 16
 17         // 如果file不是一个文件
 18         if(!file.isFile()){
 19             return false;
 20         }
 21
 22         boolean flag = file.delete();
 23         if( !flag ){
 24             System.gc();
 25             flag = file.delete() ;
 26         }
 27         return flag;
 28     }
 29
 30     /**
 31     * 只删除目录下的文件
 32     * @param dir 要删除的目录的文件路径
 33     * @return 目录删除成功返回true,否则返回false
 34     */
 35     public static boolean deleteDirectory(String dir) {
 36         // 如果dir不以文件分隔符结尾,自动添加文件分隔符
 37         if (!dir.endsWith(File.separator))
 38             dir = dir + File.separator;
 39         File dirFile = new File(dir);
 40         // 如果dir对应的文件目录不存在
 41         if ((!dirFile.exists())) {
 42             //logger.info("目录:" + dir + "不存在!");
 43             return true;
 44         }
 45         // 如果dir不是一个目录
 46         if(!dirFile.isDirectory()){
 47             return false;
 48         }
 49         boolean flag = true;
 50         // 删除文件夹中的所有文件包括子目录
 51         File[] files = dirFile.listFiles();
 52         for (int i = 0; i < files.length; i++) {
 53             // 删除子文件
 54             if (files[i].isFile()) {
 55                 flag = deleteFile(files[i].getAbsolutePath());
 56                 if (!flag)
 57                     break;
 58             }
 59         }
 60         return flag;
 61     }
 62
 63     /**
 64     * 递归删除目录及目录下的文件
 65     * @param dir 要删除的目录的文件路径
 66     * @return 目录删除成功返回true,否则返回false
 67     */
 68     public static boolean deleteDirectoryRecursion(String dir) {
 69         // 如果dir不以文件分隔符结尾,自动添加文件分隔符
 70         if (!dir.endsWith(File.separator))
 71             dir = dir + File.separator;
 72         File dirFile = new File(dir);
 73         // 如果dir对应的文件目录不存在
 74         if ((!dirFile.exists())) {
 75             //logger.info("目录:" + dir + "不存在!");
 76             return true;
 77         }
 78
 79         // 如果dir不是一个目录
 80         if(!dirFile.isDirectory()){
 81             return false;
 82         }
 83         boolean flag = true;
 84         // 删除文件夹中的所有文件包括子目录
 85         File[] files = dirFile.listFiles();
 86         for (int i = 0; i < files.length; i++) {
 87             // 删除子文件
 88             if (files[i].isFile()) {
 89                 flag = deleteFile(files[i].getAbsolutePath());
 90                 if (!flag)
 91                     break;
 92             }
 93             // 删除子目录
 94             else if (files[i].isDirectory()) {
 95                 flag = deleteDirectoryRecursion(files[i].getAbsolutePath());
 96                 if (!flag)
 97                     break;
 98             }
 99         }
100         if (!flag) {
101             //logger.error("删除目录" + dir +"失败!");
102             return false;
103         }
104         // 删除当前目录
105         flag = dirFile.delete();
106         //logger.info("删除目录" + dir + " "+flag);
107         return flag;
108     }
109
110 }

转载于:https://www.cnblogs.com/DreamDrive/p/5762399.html

Java操作文件夹的工具类相关推荐

  1. 纯C++操作文件和文件夹的工具类

    前言 一般涉及到文件和文件夹的操作的时候,要么使用Qt的QFile或者QDir类,要么使用别的库.但是当我们的程序不想包含太多太杂的库的时候,对于文件夹的操作就不那么容易了.因此,为解决这个问题,本文 ...

  2. java web 文件上传工具类_JavaWeb中实现文件上传的方式有哪些?

    上回我们说了下文件下载的方式有哪些,这次我们从不同的环境下简单来说说文件上传的方式有哪些. 文件上传的方式Servlet2.5 方式 Servlet3.0 方式 SpringMVC 方式 案例实操 S ...

  3. java settings文件夹_JAVA工具例大全--Setting文件读取配置参数

    用类cn.hutool.setting.AbsSetting的如下方法:getDouble public Double getDouble(String key, String group) 获取do ...

  4. Java操作excel转pdf工具类

    工作中遇到excel文件转pdf的需求,总结了一下通过java的实现方法: 一.准备工作: 1.下载aspose-cells的jar包 由于Aspose是不能通过maven远程坐标引入的,因为在阿里云 ...

  5. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  6. JAVA使用POI对Word docx模板文件替换数据工具类

    word模板文件参考下面: Map<String, Object> params = new HashMap<String, Object>(); params.put(&qu ...

  7. java fileutils 文件夹_java文件操作---FileUtils

    Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...

  8. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

  9. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  10. Java操作文件Path 和 Paths 及Files类介绍

    我们平时操作文件时可能要写一大堆代码.JDK1.7引入了好用的Path 和 Paths类. 创建文件,删除文件,复制文件,查找文件,查找文件个数等,只需要调一个Api就能解决,下面开始进行介绍. 1. ...

最新文章

  1. Android短信拦截
  2. Webcast.NET Remoting学习笔记(5)使用配置文件
  3. Mac 从本地copy项目到服务器
  4. shell怎么把负数变成正数_excel怎么计算平方根-记住简单的收藏复杂的
  5. PHP-代码审计-文件上传
  6. web项目开发最佳做法
  7. websphere linux版本,安装IBM Websphere on linux
  8. JAVA并发之多线程基础(4)
  9. CMMI认证需要什么条件?
  10. 计算机最小的计量单位,计算机中最小的计量单位是
  11. Nav2极简笔记03-启动文件launch
  12. 树莓派3代ROS系统镜像文件下载链接
  13. conda 清除已经下载的缓冲包
  14. 速途研究院联合融云:中国移动社交沟通指数报告
  15. 2022-5月如何使用疯狂URL获取抖音推流码地址(抖音无人直播教程)
  16. 百度地图路线规划(途经点)
  17. 3个烟花代码,我已上传,也可复制代码
  18. sja1000编程c语言,CAN总线控制器-SJA1000源程序(c语言)资料.doc
  19. Jetson Nano复制系统和U盘启动【第三部分】
  20. Android 联通GPRS设置

热门文章

  1. 阿里数据库内核月报:2016年08月
  2. sitemesh 2.4 装饰器学习
  3. Ionic系列——调用系统电话
  4. 极限运动:街头极限单车,不只是牛逼!
  5. ubuntu安装配置ssmtp
  6. 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十一:与Cube交互(下)...
  7. python 传递带参数的函数_Python 函数的参数传递
  8. java gbk文件转utf8_java 将GBK编码文件转为UTF-8编码
  9. scanner python_Python之Scanner编写
  10. get 和 post的区别