zoukankan      html  css  js  c++  java
  • Java获取、删除文件和目录

      1 package javatest;
      2 
      3 import java.io.File;
      4 import java.util.ArrayList;
      5 import java.util.regex.Pattern;
      6 
      7 class FileUtils
      8 {
      9     public static void main(String[] args)
     10     {
     11         String dir = "C:\Users\hp\Desktop\test";
     12 
     13         System.out.println("递归的获取该目录下的所有文件:");
     14         for (File f : FileUtils.getFilesRecursive(dir))
     15         {
     16             System.out.println(f.getAbsolutePath());
     17         }
     18         
     19         System.out.println("递归的获取该目录下的所有子目录:");
     20         for (File f : FileUtils.getDirecotriesRecursive(dir))
     21         {
     22             System.out.println(f.getAbsolutePath());
     23         }
     24         
     25         System.out.println("删除该目录下的所有.html文件");
     26         removeFiles(dir,null);
     27         System.out.println("Done.");
     28     }
     29     
     30     /*******递归的获取某个目录下的所有文件******/
     31     public static ArrayList<File> getFilesRecursive(String dir)
     32     {
     33         ArrayList<File> files = new ArrayList<File>();
     34 
     35         File targetDir = new File(dir);
     36         if (targetDir.exists())
     37         {
     38             for (File file : targetDir.listFiles())
     39             {
     40                 if (file.isFile())
     41                 {
     42                     files.add(file);
     43                 }
     44                 else if (file.isDirectory())
     45                 {
     46                     files.addAll(getFilesRecursive(file.getAbsolutePath()));
     47                 }
     48             }
     49         }
     50 
     51         return files;
     52     }
     53     
     54     /*******递归的获取某个目录下的所有子目录******/
     55     public static ArrayList<File> getDirecotriesRecursive(String dir)
     56     {
     57         ArrayList<File> dirs = new ArrayList<File>();
     58 
     59         File targetDir = new File(dir);
     60         if (targetDir.exists())
     61         {
     62             for (File f : targetDir.listFiles())
     63             {
     64                 if (f.isDirectory())
     65                 {
     66                     dirs.add(f);
     67                     dirs.addAll(getDirecotriesRecursive(f.getAbsolutePath()));
     68                 }
     69             }
     70         }
     71 
     72         return dirs;
     73     }
     74     
     75     /*******删除某个目录下,文件名符合过滤条件的所有文件,然后删除空的子目录******/
     76     public static void removeFiles(String targetDir, String fileRegex)
     77     {
     78         ArrayList<File> files = getFilesRecursive(targetDir);
     79         //没有过滤条件,则删除该目录下的所有文件和子目录
     80         if (fileRegex == null||fileRegex.equals("") )
     81         {
     82             //先删除所有文件.
     83             for (File file : files)
     84             {
     85                 file.delete();
     86             }
     87             //由内到外删除所有空目录.
     88             ArrayList<File> dirs=getDirecotriesRecursive(targetDir);
     89             for (int i=0;i< dirs.size();++i)
     90             {
     91                 dirs.get(dirs.size()-1-i).delete();
     92             }
     93         }
     94         else
     95         {
     96             //用正则表达式过滤文件名
     97             Pattern pat = Pattern.compile(fileRegex);
     98             for (File file : files)
     99             {
    100                 if (pat.matcher(file.getAbsolutePath()).find())
    101                     file.delete();
    102             }
    103         }
    104     }
    105 }
  • 相关阅读:
    IE8使用chrome内核渲染
    JS中的call()方法和apply()方法用法总结(挺好 转载下)
    解决雷达图文字显示不全问题
    echarts legend文字配置多个颜色(转)
    vue中Axios的封装和API接口的管理
    echarts 折线拐点收藏
    echarts 折线图自定义颜色与修改legend颜色
    MUI框架 按钮点击响应不好的问题解决办法
    ECharts将折线变平滑和去掉点的属性
    单例模式——创建型模式01
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/5239871.html
Copyright © 2011-2022 走看看