Java递归删除目录文件
2015-07-03 10:02
639 查看
package com.jiepu.copy; import java.io.File; import java.util.ArrayList; import java.util.List; /** * Java递归删除目录文件 * @author Administrator * */ public class FileSystem { public static void main(String[] args) { long a = System.currentTimeMillis(); List<File> resultfiles = new ArrayList<File>(); String[] lists = { "I:\\IT\\图标图片素材大全" }; for (int i = 0; i < lists.length; i++) { File file = new File(lists[i]); List<String> endWithTypes=new ArrayList<String>(); endWithTypes.add("rar"); endWithTypes.add("zip"); endWithTypes.add("7z"); endWithTypes.add("iso"); endWithTypes.add("bmp"); endWithTypes.add("png"); endWithTypes.add("jpg"); endWithTypes.add("gif"); endWithTypes.add("ico"); endWithTypes.add("jpeg"); scanDirRecursion(file, resultfiles,endWithTypes); } for (File file : resultfiles) { //System.out.println(file.getAbsolutePath()); } System.out.print("文件总数:" + resultfiles.size()); System.out.print("总耗时:"); System.out.println((System.currentTimeMillis() - a) + "ms"); System.out.println((System.currentTimeMillis() - a) / 1000 + "s"); } /** * 递归遍历目录 * * @param file * 文件目录 * @param resultfiles * 保存返回的结果集 * @param endWith * 为null,则返回所有文件,不为空,则返回所匹配的文件 */ public static void scanDirRecursion(File file, List<File> resultfiles, List<String> endWithTypes) { try { if (file.canRead()) { if (file.isDirectory()) { String[] files = file.list(); if (files != null) { for (int i = 0; i < files.length; i++) { scanDirRecursion(new File(file, files[i]), resultfiles, endWithTypes); } } } else { // System.out.println(file); if (endWithTypes != null) { boolean isendWith=false; for(String endWith:endWithTypes) { if (file.getName().toLowerCase().endsWith(endWith.toLowerCase())) { resultfiles.add(file); isendWith=true; } } if(isendWith==false) { System.out.println("file del "+file.getAbsolutePath()); file.delete(); } } else { resultfiles.add(file); } } } } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- JAVA中几种集合(List、Set和Map)的区别
- Java导入包出错处理方式
- Javadoc(HTML)转CHM详细教程
- 《Java课程实习》日志(周四)&&课程设计:《猜猜看》游戏
- Java 猜猜看程序。
- Java序列化和hessian序列化的区别
- Java代码实现Spring bean的初始化
- 《Java课程实习》日志(周四)猜猜看注释版
- Java读取图片EXIF信息的方法
- Java程序设计之猜猜看小部分实现
- 《Java课程实习》日志(周五)
- Java 启动IE浏览器打开指定网页
- java回调及匿名内部类实现
- struts2中过滤器和拦截器的区别,以及他们所应用的事例
- getHibernateTemplate().find java.lang.NullPointerException
- java学习笔记一 java类型信息(RITI和反射)
- java.net.SocketException:Software caused connection abort: recv failed 异常分析
- spring jdbcTemplate使用queryForList示例
- 重踏学习Java路上_Day16(List的子类,泛型,增强for循环,静态导入,可变参数)
- Spring概述