Java获取、删除文件和目录
2016-03-03 19:53
471 查看
package javatest; import java.io.File; import java.util.ArrayList; import java.util.regex.Pattern; class FileUtils { public static void main(String[] args) { String dir = "C:\\Users\\hp\\Desktop\\test"; System.out.println("递归的获取该目录下的所有文件:"); for (File f : FileUtils.getFilesRecursive(dir)) { System.out.println(f.getAbsolutePath()); } System.out.println("递归的获取该目录下的所有子目录:"); for (File f : FileUtils.getDirecotriesRecursive(dir)) { System.out.println(f.getAbsolutePath()); } System.out.println("删除该目录下的所有.html文件"); removeFiles(dir,null); System.out.println("Done."); } /*******递归的获取某个目录下的所有文件******/ public static ArrayList<File> getFilesRecursive(String dir) { ArrayList<File> files = new ArrayList<File>(); File targetDir = new File(dir); if (targetDir.exists()) { for (File file : targetDir.listFiles()) { if (file.isFile()) { files.add(file); } else if (file.isDirectory()) { files.addAll(getFilesRecursive(file.getAbsolutePath())); } } } return files; } /*******递归的获取某个目录下的所有子目录******/ public static ArrayList<File> getDirecotriesRecursive(String dir) { ArrayList<File> dirs = new ArrayList<File>(); File targetDir = new File(dir); if (targetDir.exists()) { for (File f : targetDir.listFiles()) { if (f.isDirectory()) { dirs.add(f); dirs.addAll(getDirecotriesRecursive(f.getAbsolutePath())); } } } return dirs; } /*******删除某个目录下,文件名符合过滤条件的所有文件,然后删除空的子目录******/ public static void removeFiles(String targetDir, String fileRegex) { ArrayList<File> files = getFilesRecursive(targetDir); //没有过滤条件,则删除该目录下的所有文件和子目录 if (fileRegex == null||fileRegex.equals("") ) { //先删除所有文件. for (File file : files) { file.delete(); } //由内到外删除所有空目录. ArrayList<File> dirs=getDirecotriesRecursive(targetDir); for (int i=0;i< dirs.size();++i) { dirs.get(dirs.size()-1-i).delete(); } } else { //用正则表达式过滤文件名 Pattern pat = Pattern.compile(fileRegex); for (File file : files) { if (pat.matcher(file.getAbsolutePath()).find()) file.delete(); } } } }
相关文章推荐
- gradle多渠道打包及友盟统计-eclipse版本
- Spark , JAVA_HOME is not set
- Java保留小数点后数字位数
- Java基础之标识符与关键字
- java非,或与和三种移位运算
- <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.NullPointerException
- myeclipse中使用weblogic
- java的Switch用法简介
- Java集合
- Leetcode:101. Symmetric Tree(JAVA)
- leetcode:First Missing Positive 【Java】
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
- Leetcode:110. Balanced Binary Tree(JAVA)
- spring+mybatis事务管理(声明式+编码式)
- 2016蓝桥杯假期任务之《身份证升级》
- javaweb2.2 DOM解析之增删改查
- 《JAVA与模式》之桥梁模式
- Java基础语法
- intellij Idea 报jdk错误
- JAVA正则表达式 Pattern和Matcher