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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【译】一些优化你的SQL语句的TIPs
下一篇:JDBC连接效率问题

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 19时32分40秒