zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    NodeJS学习笔记(三) 模块与包_深入学习
    NodeJS学习笔记(二) 模块与包_基础部分
    Java 开发环境搭建
    Quartz.net 定时任务矿建Demo
    MVC AJAX.BeginForm() 页面异步提交
    源码学习分享
    WPF系能优化
    谈如何阅读框架源码
    Linux源码学习(7) 2013-3-1
    Linux源码学习(6) 2013-3-1
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5762399.html
Copyright © 2011-2022 走看看