在jdk的File的list方法里传入一个FilenameFilter的接口参数,使用时需要实现该接口。
list
public String[] list(FilenameFilter filter)以下代码是给定一个目录,检查该目录下有多少个子目录,并列出目录名。

class DirFilter ...{
public static void main(String[] args) ...{
if (1 != args.length)
throw new IllegalArgumentException("need a dir");
File file = new File(args[0]);

/** *//**
* File的list方法会传入file目录及file目录下的文件名循环调用FileFilenameFilter的accept方法,
* 并把符合是目录的文件名存入dirs中。
*/
String[] dirs = file.list(new FilenameFilter() ...{
public boolean accept(File dir, String file) ...{
return new File(dir, file).isDirectory();
}
});
System.out.println(dirs.length + " dir(s)");
for (String dir : dirs)
System.out.print(" " + dir);
}
}代码中以下代码就是一个实现了FilenameFilter接口的匿名类,实现了accept(File dir,String file)方法。

new FilenameFilter() ...{
public boolean accept(File dir, String file) ...{
return new File(dir, file).isDirectory();
}
本文介绍如何使用Java的FilenameFilter接口来筛选目录中的子目录。通过一个具体的代码示例,展示了如何实现FilenameFilter接口的accept方法,以找出指定目录下的所有子目录。
170

被折叠的 条评论
为什么被折叠?



