Java操作文件夹的工具类
发布日期:2021-06-24 18:31:08
浏览次数:3
分类:技术文章
本文共 3381 字,大约阅读时间需要 11 分钟。
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 }
本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5762399.html,如需转载请自行联系原作者
转载地址:https://blog.csdn.net/weixin_34248258/article/details/90135242 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月16日 19时32分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
图Graph--最短路径算法(Shortest Path Algorithm)
2019-04-28
LeetCode 674. 最长连续递增序列
2019-04-28
LeetCode 70. 爬楼梯(动态规划)
2019-04-28
数据结构--位图 BitMap
2019-04-28
朴素贝叶斯算法--过滤垃圾短信
2019-04-28
向量空间 Vector Space -- 推荐系统
2019-04-28
B+树 -- MySQL数据库索引
2019-04-28
A*搜索算法--游戏寻路
2019-04-28
我把公众号所有的精华文章都整理出来了
2019-04-28
ROS中的坐标系规定及数据单位
2019-04-28
MATLAB - 三维图绘制
2019-04-28
C++语法例程速查笔记(个人笔记)
2019-04-28
ROS学习过程中的错误记录5 - sw2urdf导出功能包的编译错误
2019-04-28
关于机械臂仿真的几款软件简介
2019-04-28
MATLAB - 符号运算(持续更新)
2019-04-28
机器人动力学 - 机器人学中的惯性矩阵坐标转换及在SolidWorks中的测量
2019-04-28
SolidWorks转Simscape Multibody(两种方案)
2019-04-28
Simscape Multibody —— Revolute Joint的使用
2019-04-28
Ubuntu 主机名及用户名颜色显示问题的解决
2019-04-28
matlab随机函数使用笔记
2019-04-28