FilenameFilter总结

时间:2023-03-08 17:24:46
FilenameFilter总结

一、FilenameFilter介绍

java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件;

一般地:

(1)String[] fs = f.list();

(2)File[] fs = f.listFiles();

这两个方法返回f下的所有文件或目录;

FilenameFilter用来把符合要求的文件或目录返回;

因此可以调用:

(1)String []fs = f.list(FilenameFilter filter);;

(2)File[]fs = f.listFiles(FilenameFilter filter);

二、文件名过滤器一般用法

1.实现FilenameFilter接口;

2.实现boolean accept(File dir,String name);   //dir表示文件的当前目录,name表示文件名;

class DirFilter implements FilenameFilter{

private Pattern pattern;

public DirFilter(String regex){

this.pattern = Pattern.compile(regex);

}

public boolean accept(File dir,String name){           //返回true的文件则合格

}

}

三、实例

package test1;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern; public class DirList {
public static void main(String[] args){
File path=new File(".");
String[] list;
if(args.length==0){
list=path.list();
}else{
list=path.list(new DirFilter(args[0]));
}
Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
for(String dirItem:list){
System.out.println(dirItem);
}
}
} class DirFilter implements FilenameFilter{
private Pattern pattern; public DirFilter(String regex){
pattern=Pattern.compile(regex);
} @Override
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
} }