博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

递归获取多级目录文件

Posted on 2020-08-07 11:42  池塘鱼  阅读(233)  评论(0)    收藏  举报

java.io.File类的遍历方法list()和listFiles()都是只获取一级目录和文件,如果希望递归获取目录的多级文件,需要自行编写方法。

package com.ex.file;

import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;


public class ConstructorTest {
    public static void main(String[] args) throws IOException {
        File dir = new File("D:\\IntelliJ IDEA 2017\\work\\algorithmPro");
        LinkedList<File> files = new LinkedList<>();
        getAllFiles(dir,files);
        for (File file:files) {
            System.out.println(file);
        }

    }

    public static void getAllFiles(File dir, List<File> files) {
        File[] dirs = dir.listFiles();
        for (int i = 0; i < dirs.length; i++) {
            if (dirs[i].isFile()) {
                files.add(dirs[i]);
            }else {
                getAllFiles(dirs[i],files);
            }
        }

    }

}