Java操作文件夹的工具类

简介:

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,如需转载请自行联系原作者

相关文章
|
9天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 0
|
9天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
23 0
|
1天前
|
SQL Java 数据库连接
Java数据库编程实践:连接与操作数据库
Java数据库编程实践:连接与操作数据库
8 0
|
3天前
|
存储 算法 安全
Java工具类
Java工具类
27 5
Java工具类
|
7天前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
11 2
|
9天前
|
存储 NoSQL 安全
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
|
10天前
|
分布式计算 DataWorks 监控
DataWorks操作报错合集之DataWorks在调用java sdk的createFile功能时报错com.aliyuncs.exceptions.ClientException: 1201111000 如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
11 1
|
10天前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
19 0
|
12天前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
【4月更文挑战第25天】本文介绍了自动化测试中如何处理单选和多选按钮的操作,包括它们的定义、HTML代码示例以及如何判断和操作这些元素。文章通过一个简单的HTML页面展示了单选和多选框的示例,并提供了Java+Selenium实现的代码示例,演示了如何检查单选框是否选中以及如何进行全选操作。
18 0
|
13天前
|
Java
【java基础】File操作详解
【java基础】File操作详解
10 0