Recursively list files in Java

后端 未结 27 2013
走了就别回头了
走了就别回头了 2020-11-22 00:29

How do I recursively list all files under a directory in Java? Does the framework provide any utility?

I saw a lot of hacky implementations. But none from the fra

27条回答
  •  春和景丽
    2020-11-22 00:56

    Non-recursive BFS with a single list (particular example is searching for *.eml files):

        final FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File file) {
                return file.isDirectory() || file.getName().endsWith(".eml");
            }
        };
    
        // BFS recursive search
        List queue = new LinkedList();
        queue.addAll(Arrays.asList(dir.listFiles(filter)));
    
        for (ListIterator itr = queue.listIterator(); itr.hasNext();) {
            File file = itr.next();
            if (file.isDirectory()) {
                itr.remove();
                for (File f: file.listFiles(filter)) itr.add(f);
            }
        }
    

提交回复
热议问题