第一种:
第二种:
import java.io.*;
public class FileFilterTest {
public static void main(String args[]) {
File dir = new File("d:\\file"); // 用File 对象表示一个目录
Filter filter =new Filter("java");
System.out.println("list java files in directory "+dir);
String files[]=dir.list(filter); //列出目录dir下,文件后缀名为java的所有文件
for(int i=0;i<files.length;i++){
File f=new File(dir,files[i]); //为目录dir 下的文件或目录创建一个File 对象
if(f.isFile()) //如果该对象为后缀为java的文件, 则打印文件名
System.out.println("file "+f);
else
System.out.println("sub directory "+f ); //如果是目录则打印目录名
}
}
}
class Filter implements FilenameFilter {
String extent;
public Filter(String extent) {
this.extent = extent;
}
public boolean accept(File dir, String name) {
return name.endsWith("."+extent); //返回文件的后缀名;
}
}
第二种:
import java.io.File;
import java.io.FileFilter;
public class FileFilterTest2 {
public static void main(String args[]){
String pathName = ".";
if(args!=null && args.length>0){
pathName = args[0];
}
File file = new File(pathName);
if(file.isFile()){
System.out.println("参数错误!");
return;
}
filter(file);
}
/**
* 文件过滤
* @param file
*/
public static void filter(File file){
File fs[] = file.listFiles(new FileFilter(){
public boolean accept(File f){
if(f.isFile()){
String name = f.getName();
if(name.endsWith(".txt")){
return true;
}
}
if(f.isDirectory()){
return true;
}
return false;
}
});
System.out.println("ok--"+fs.length);
if(fs!=null && fs.length>0){
for(File f:fs){
if(f.isFile()){
System.out.println(f.getAbsolutePath());
}else{
System.out.println("else--"+f.getAbsolutePath());
filter(f);
}
}
}
}
}