import java.io.File;public class DeleteFileUtil {private static LoggerHelper loggerHelper = LoggerHelper.getLoggerHelper(Constants.ModuleName.COMMON,DeleteFileUtil.class.getSimpleName());/*** 删除文件,可以是单个文件或文件夹** @param fileName*            待删除的文件名* @return 文件删除成功返回true,否则返回false*/public static boolean delete(String fileName) {File file = new File(fileName);if (!file.exists()) {loggerHelper.infoLog("删除文件失败:" + fileName + "文件不存在");return false;} else {if (file.isFile()) {return deleteFile(fileName);} else {return deleteDirectory(fileName);}}}/*** 删除单个文件** @param fileName*            被删除文件的文件名* @return 单个文件删除成功返回true,否则返回false*/public static boolean deleteFile(String fileName) {File file = new File(fileName);if (file.isFile() && file.exists()) {file.delete();loggerHelper.infoLog("删除单个文件" + fileName + "成功!");return true;} else {loggerHelper.infoLog("删除单个文件" + fileName + "失败!");return false;}}/*** 删除目录(文件夹)以及目录下的文件** @param dir*            被删除目录的文件路径* @return 目录删除成功返回true,否则返回false*/public static boolean deleteDirectory(String dir) {// 如果dir不以文件分隔符结尾,自动添加文件分隔符if (!dir.endsWith(File.separator)) {dir = dir + File.separator;}File dirFile = new File(dir);// 如果dir对应的文件不存在,或者不是一个目录,则退出if (!dirFile.exists() || !dirFile.isDirectory()) {loggerHelper.infoLog("删除目录失败" + dir + "目录不存在!");return false;}boolean flag = true;// 删除文件夹下的所有文件(包括子目录)File[] files = dirFile.listFiles();for (int i = 0; i < files.length; i++) {// 删除子文件if (files[i].isFile()) {flag = deleteFile(files[i].getAbsolutePath());if (!flag) {break;}}// 删除子目录else {flag = deleteDirectory(files[i].getAbsolutePath());if (!flag) {break;}}}if (!flag) {loggerHelper.infoLog("删除目录失败");return false;}// 删除当前目录if (dirFile.delete()) {loggerHelper.infoLog("删除目录" + dir + "成功!");return true;} else {loggerHelper.infoLog("删除目录" + dir + "失败!");return false;}}// 删除文件夹// param folderPath 文件夹完整绝对路径public static void delFolder(String folderPath) {try {delAllFile(folderPath); // 删除完里面所有内容String filePath = folderPath;filePath = filePath.toString();java.io.File myFilePath = new java.io.File(filePath);myFilePath.delete(); // 删除空文件夹} catch (Exception e) {e.printStackTrace();}}// 删除指定文件夹下所有文件// param path 文件夹完整绝对路径public static boolean delAllFile(String path) {boolean flag = false;File file = new File(path);if (!file.exists()) {return flag;}if (!file.isDirectory()) {return flag;}String[] tempList = file.list();File temp = null;for (int i = 0; i < tempList.length; i++) {if (path.endsWith(File.separator)) {temp = new File(path + tempList[i]);} else {temp = new File(path + File.separator + tempList[i]);}if (temp.isFile()) {temp.delete();}if (temp.isDirectory()) {delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件delFolder(path + "/" + tempList[i]);// 再删除空文件夹flag = true;}}return flag;}}

JAVA删除文件或者文件夹工具类相关推荐

  1. JAVA 文件上传下载工具类

    JAVA 文件上传下载工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org. ...

  2. java 文件编码转码工具类

    java 文件编码转码工具类 一.描述        文件编码转码,GBK编码的文件转为UTF-8编码的文件. 二.代码实现 package com.lanshen.utils.lsjavaUtils ...

  3. 【文件压缩解压工具类-含密码】

    文件压缩解压工具类-含密码 一.zip4j简介 二.zip4j工具类使用步骤 1.添加maven依赖 2.工具类代码 3.调用测试 三.结语 一.zip4j简介 zip4j功能比较强大,支持加密.解密 ...

  4. 华为云OBS文件上传下载工具类

    Java-华为云OBS文件上传下载工具类 文章目录 Java-华为云OBS文件上传下载工具类 1.华为云obs文件上传下载 2.文件流转MultipartFile 3.File转换为Multipart ...

  5. (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入

    -- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...

  6. Java学习总结:58(Collections工具类)

    Collections工具类 Java提供了一个集合的工具类--Collections,这个工具类可以实现List.Set.Map集合的操作.Collections类的常用方法如下: No. 方法 类 ...

  7. java配置文件工具类,java项目加载配置文件的工具类

    java项目加载配置文件的工具类 package com.loadproperties; import java.io.IOException; import java.io.InputStream; ...

  8. Java实现Google的S2算法工具类

    WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 WGS84坐标系 GCJ02坐标系 BD09坐标系的各种转换 Google S2 经纬度 转 CellId 经纬度 转 cellToken ...

  9. Java 图片添加数字暗水印工具类

    Java 图片添加数字暗水印工具类. package cnki.thesis.common.utils;import org.opencv.core.*;import java.util.ArrayL ...

  10. Java时间戳与日期格式转换工具类

    Java时间戳与日期格式转换工具类 在做web开发时,有时候需要用到时间戳,在前台进行日期转换,从数据库中取出来是日期格式的,这里记录下使用的转换工具类(这些都是静态方法,通过类名.方法的形式即可调用 ...

最新文章

  1. boost::asio异步模式的C/S客户端源码实现
  2. 两个提高javascript执行效率的简易代码分享给大家
  3. Python 技术篇-20行代码实现微信机器人斗图功能实例演示!斗图啦官网API调用方法
  4. 全球及中国1-氯-3-乙基苯行业发展规划分析及市场前瞻报告2021年版
  5. CAN'T TAKE MY EYES OF YOU
  6. C++ 从函数或方法返回内存 实现返回多个变量
  7. 前端 Offer 提速:如何写出有亮点的简历
  8. c++ string类的常用方法_【常用类方法】Object
  9. 信安精品课:第2章网络攻击原理与常用方法精讲笔记
  10. 使用Python往Elasticsearch插入数据
  11. 响应服务器535 5.7.1 unab,带有Gmail的JavaMail:535-5.7.1不接受用户名和密码
  12. ARM64移动处理器解惑
  13. Centos7安装Caffe教程
  14. gliffy-confluence-plugin-9.1.2安装
  15. 记录使用git时出现Permission denied 问题的解决
  16. 用户留存sql完整版
  17. EMC测试仪器_如何实现EMC的测试工作?
  18. Qt SQL:QSqlField、QSqlRecord、QSqlIndex、QSqlError
  19. “你已被移出穷人群”
  20. 网络七层模型与物联网三层模型

热门文章

  1. 专利与论文-2:什么是专利?专利的几种类型?
  2. DSP28335学习之旅2-最小系统
  3. 嵌入式RFIDIC卡读写模块|读卡刷卡模块HX880D系列的应用与操作说明
  4. 【株洲出差】回记人生第一次出差之旅
  5. C语言链表实现学生信息管理系统
  6. 什么是 HTTP 协议
  7. Spring Boot+JSP项目中静态资源配置
  8. 如何用c语言对51单片机进行编程,C语言在51单片机编程中的应用技巧
  9. 车载通信协议-列车实时数据协议(TRDP)
  10. pmp练习题及答案解析