本帖最后由 庄星睿 于 2012-7-7 11:50 编辑
要遍历一个目录下所有扩展名为.java文件,用文件过滤器问题:- import java.io.*;
- class Test1
- {
- public static void main(String[] args)
- {
- //listRoots();
- //list1();
- //list2();
- File ff=new File("f:\\diary");
- list4(ff);
- }
- public static void list4(File file)
- {
- File[] arr=file.listFiles(new FilenameFilter()
- {
- public boolean accept(File dir,String name)
- {
- return name.endsWith(".java"); //判断扩展名。java,返回ture
- }
- });
- for(File f : arr)
- {
- if(f.isDirectory()) //如果是目录,递归
- list4(f);
- else
- System.out.println(f);
- }
- }
- public static void list3(File file)
- {
- File[] arr=file.listFiles(new FileFilter()
- {
- public boolean accept(File pathname)
- {
- return pathname.getName().endsWith(".java");
- }
- });
- for (File ff : arr)
- {
- if(ff.isDirectory())
- list3(ff);
- else
- System.out.println(ff);
- }
- }
复制代码 在遍历数组的过程中,加了判断,如果是目录,递归,会先遍历diary内的目录,如果不是目录就按照 过滤器返回的结果进行打印,但是结果只能遍历到当前diary目录下的.java文件,不能打印所有的.java文件,这里为什么用文件过滤器不行? |
|