import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
// 通过过滤文件名
// 将某个文件夹里的文件 全部 过滤后打印出来
class filterFile
{
File file=null;
FilenameFilter filter=null;
List<File> list=new ArrayList<File>();
filterFile(File file,FilenameFilter filter)
{
this.file=file;
this.filter=filter;
GetFiles(file);
}
public void print()
{
Iterator<File> it=list.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
}
private void GetFiles(File file)
{
File[] files=file.listFiles();
if(files!=null)
for(File file1:files)
{
if(file1.isDirectory())
{
GetFiles(file1);
}
else
{
if(filter.accept(file,file1.getName()))
{
list.add(file1);
}
}
}
}
}
public class Main {
public static void main(String[] args) throws IOException {
File FileFrom=new File("/Users/mac/java/from");
FileFrom.mkdirs();
//过滤java文件
FilenameFilter filter=new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
};
filterFile fp=new filterFile(FileFrom,filter);
fp.print();
}
}
文件的结构:
运行结果: