目的:对一个目录(文件夹)下的多个文件或者目录进行筛选
条件:FileFilter类和FileNameFilter类
备注:FileNameFilter类的功能是:获取目标目录下多个文件和目录的名字,然后根据输入的筛选条件 筛选,最后返回符合筛选条件的文件或目录名字
FileFilter类的功能是:获取目标目录下所有文件和目录的file(类)对象,然后根据输入的筛选条件筛选,最后返回符合筛选条件的文件或目录file对象
代码:
1.创建一个根据文件名筛选的工具类MyFileNameFilter,可以被其他类调用
package May.Eighth.File;
/**
* 创建一个FileNameFilter
*/
import java.io.File;
import java.io.FilenameFilter;
// 用 implements 继承一个叫FIlenameFilter的接口
public class MyNameFIleFilter implements FilenameFilter {
// 创建一个用于接收筛选条件的属性(字符串)
private String sign;
// 无参构造方法
public MyNameFIleFilter() {
super();
}
// 有参构造方法,用来将接收到的筛选条件,存入自身属性
public MyNameFIleFilter(String sign) {
super();
this.sign = sign;
}
// 重写接口中的accept()方法,参数不用写
@Override
public boolean accept(File dir, String name) {
// 判断文件名是否以sign结尾,是,则返回ture
if (name.endsWith(sign)) {
return true;
}
return false;
}
}
- 创建一个根据文件类型、属性(是否隐藏、只读等)进行筛选的工具类,FileFilter
package May.Eighth.File;
/**
* 写一个FileFilter工具类
*/
import java.io.File;
import java.io.FileFilter;
// 继承FileFilter接口
public class MyFileFilter implements FileFilter{
// 重写accept()方法,参数不用写,被调用时也不用给实参
@Override
public boolean accept(File file) {
// 写判断语句,文件是否为目录(文件夹)
if (file.isDirectory()) {
return true;
}
return false;
}
}