package com.wazn.learn.util;

import java.io.File;
/**
* 删除文件工具类
* @author yangzhenyu
*
*/
public class DeleteFileUtil { /**
* 删除文件,可以是文件或文件夹
*
* @param fileName
* 要删除的文件名
* @return 删除成功返回true,否则返回false
*/
public static boolean delete(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("删除文件失败:" + 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.exists() && file.isFile()) {
if (file.delete()) {
System.out.println("删除单个文件" + fileName + "成功!");
return true;
} else {
System.out.println("删除单个文件" + fileName + "失败!");
return false;
}
} else {
System.out.println("删除单个文件失败:" + 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())) {
System.out.println("删除目录失败:" + dir + "不存在!");
return false;
}
boolean flag = true;
// 删除文件夹中的所有文件包括子目录
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
// 删除子文件
if (files[i].isFile()) {
flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
}
// 删除子目录
else if (files[i].isDirectory()) {
flag = DeleteFileUtil.deleteDirectory(files[i]
.getAbsolutePath());
if (!flag)
break;
}
}
if (!flag) {
System.out.println("删除目录失败!");
return false;
}
// 删除当前目录
if (dirFile.delete()) {
System.out.println("删除目录" + dir + "成功!");
return true;
} else {
return false;
}
} }

最新文章

  1. Json解析工具的选择
  2. [Leetcode][JAVA] Binary Tree Level Order Traversal
  3. Hadoop.2.x_MR-Shuffle过程
  4. 用etckeeper来解救运维工程师
  5. HDU 2586 + HDU 4912 最近公共祖先
  6. poj 3046 Ant Counting
  7. VS 2003 无法打开Web项目 文件路径与URL不符 这两者需要映射到相同的服务器位置
  8. redis虚拟内存
  9. 在flask框架中,对wtforms的SelectMultipleField的一个报错处理
  10. 深入理解v-model
  11. Android--保持加速度传感器在屏幕关闭后运行(收集)
  12. Java日期时间,以及相互转换
  13. 批处理手动设置电脑的ip
  14. 窗体Form的FormStyle属性设置为fsStayOnTop时属性设置不起作用问题探讨。
  15. JVM学习笔记-JVM模型
  16. Linux 修改root密码(忘记密码后)
  17. 【转】asp.net mvc css/js压缩合并 --- combres
  18. JAVA 加密算法初探DES&amp;AES
  19. python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据
  20. BZOJ 2190 仪仗队(线性筛欧拉函数)

热门文章

  1. 用shell获取目录/文件夹/文件的时间戳
  2. spring boot 2.0.3+spring cloud (Finchley)4、熔断器Hystrix
  3. Isomorphic JavaScript: The Future of Web Apps(译)
  4. 20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结
  5. 爬虫实战--基于requests 和 Beautiful的7160美图网爬取图片
  6. struts获得参数(属性,对象,模型驱动)
  7. MongoDB之数据库命令操作(二)
  8. [Leetcode] Sum 系列
  9. ProxySQL 监控和统计
  10. 升级vs17中的cordova-simulate