首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中的递归列表文件

Java中的递归列表文件
EN

Stack Overflow用户
提问于 2010-01-13 19:29:33
回答 25查看 340.2K关注 0票数 311

如何在Java中递归列出某个目录下的所有文件?这个框架提供了什么实用工具吗?

我看到了很多老套的实现。但是没有来自框架或nio

EN

回答 25

Stack Overflow用户

发布于 2010-01-13 19:36:05

FileUtilsiterateFileslistFiles方法。试一试。(来自commons-io)

编辑:您可以对不同方法的基准进行check here。commons-io方法似乎很慢,所以选择一些更快的from here (如果重要的话)

票数 165
EN

Stack Overflow用户

发布于 2010-01-13 19:47:58

//准备运行

代码语言:javascript
复制
import java.io.File;

public class Filewalker {

    public void walk( String path ) {

        File root = new File( path );
        File[] list = root.listFiles();

        if (list == null) return;

        for ( File f : list ) {
            if ( f.isDirectory() ) {
                walk( f.getAbsolutePath() );
                System.out.println( "Dir:" + f.getAbsoluteFile() );
            }
            else {
                System.out.println( "File:" + f.getAbsoluteFile() );
            }
        }
    }

    public static void main(String[] args) {
        Filewalker fw = new Filewalker();
        fw.walk("c:\\" );
    }

}
票数 142
EN

Stack Overflow用户

发布于 2012-07-26 04:36:19

不需要外部库。

返回一个Collection,这样您就可以在调用后对它做任何想做的事情。

代码语言:javascript
复制
public static Collection<File> listFileTree(File dir) {
    Set<File> fileTree = new HashSet<File>();
    if(dir==null||dir.listFiles()==null){
        return fileTree;
    }
    for (File entry : dir.listFiles()) {
        if (entry.isFile()) fileTree.add(entry);
        else fileTree.addAll(listFileTree(entry));
    }
    return fileTree;
}
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2056221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档