package com.syh.demo;
import java.io.File;
import java.io.FileFilter;
public class Demo {
static int count = 0;//记录扫描次数
public static void main(String[] args) {
File dir = new File("d://");
list(dir);
System.out.println("共扫描了" + count + "个文件");
}
/**
* 通过实现FileFilter文件过滤器,过滤txt文件
*/
static class TXTFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
//判断文件名是否以.txt或是以.TXT结尾
if (pathname.getName().endsWith(".txt") || pathname.getName().endsWith(".TXT")) {
return true;
}
return false;
}
}
/**
* 通过实现FileFilter文件过滤器,过滤文件夹
*/
static class DIRFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return true;
}
return false;
}
}
/**
* 此方法用于找出一个文件夹中的所有txt文件(包含子目录).
*
* @param
*/
public static void list(File dir) {
if (dir == null)
return;
//listFiles(); 只有file对象为文件夹时才可用,用于获取子文件/子文件夹的文件数组
File[] txts = dir.listFiles(new TXTFilter());
if (txts != null)
for (int i = 0; i < txts.length; i++) {
System.out.println("发现一个txt文件:" + txts[i].getAbsoluteFile());
//通过后缀名进行垃圾清理(慎重!) txts[i].delete();
}
count++;
File[] dirs = dir.listFiles(new DIRFilter());
if (dirs != null)
for (int i = 0; i < dirs.length; i++) {
//递归调用list方法
list(dirs[i]);
}
}
}
文件查找,垃圾清理
于 2022-01-14 18:12:18 首次发布