import java.io.*;
import java.util.*;public class FileList
{
static  List data =new ArrayList();

public static void main(String [] args)
{

File f = new File("D:/"); System.out.println(f.isDirectory());
fList(f);

for(int j=0;j<data.size();j++)
{
System.out.println(data.get(j));
}    
}

public static void fList(File f)
{

int i=0;
if(!f.isDirectory())
{
if(f.getName().endsWith("txt"))
{
data.add(f.getName());
}
}
if(f.isDirectory())
{
File [] files = f.listFiles();
for(File cf : files)
fList(cf);
}




}
}
为什么直接file  D盘就搜索不到,而file一个D盘下的某个目录,就可以搜索到此目录下符合条件的文件,包括子目录也可以搜索到?

解决方案 »

  1.   

    public class FileList{
        public static void main(String[] args) {
            File file = new File("D:/");
            fList(file);
        }
        public static void fList(File file) {
            File[] dir = file.listFiles(new TxtLilter());
            if(dir.isFile) {
                System.out.println(dir.getAbsoluteFile());
            } else {
                fList(dir);
            }
        }
    }class TxtLilter implements FileLilter {
        public boolean accept(File file) {
            if(file.isDirectory()) return true;
            String name = file.getName();
            return name.contains(".txt");
        }
    }