如何用java实现读取一个目录下的所有文件(包括子目录)?

解决方案 »

  1.   

    public class ListDirFile
    {
        /**
         * @param args
         */
        public static void main(String[] args)
        {
            File dataDir = new File("d:\\wan");// 是存放原始文件的文件夹
            File[] mydata = null;
            int j = 0;
            System.out.println("以下是该文件中所包含的所有符合索引要求的文件:");
            list(dataDir);
        }    public static void list(File path)
        {
            if (!path.exists())
            {
                System.out.println("文件名称不存在!");
            }
            else
            {
                if (path.isFile())
                {
                        System.out.println(path);
                        System.out.println(path.getName());
                }
                else
                {
                    File[] files = path.listFiles();
                    for (int i = 0; i < files.length; i++)
                    {
                        list(files[i]);
                    }
                }
            }
        }
    }
      

  2.   


    List read(List l,File fl){
      File[] fls = fl.list(); //你查下api,印象不深了
      for(int i = 0,sz = fls.length;i<sz;i++){
        if(fls[i].isDirectory()){
            read(l,fls[i]);
        }else{
          l.add(fls[i]);
         }
      }
    }
    你查下api,函数记得不深了
      

  3.   


    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;public class Client {    static List<String> list = new ArrayList<String>();    public static void main(String[] args) {
            File f = new File("E:\\test");
            getFile(f);
            System.out.println(list);
        }    static void getFile(File f) {
            if (f == null)
                return;
            if (f.isFile()) {
                list.add(f.getName());
                return;
            }
            if (f.isDirectory()) {
                File[] f1 = f.listFiles();
                for (File f2 : f1) {
                    if (f2.isFile()) {
                        list.add(f2.getName());
                        System.out.println(f.getName());
                    } else
                        getFile(f2);
                }        }
        }
    }