如何在Java中递归列出某个目录下的所有文件?这个框架提供了什么实用工具吗?
我看到了很多老套的实现。但是没有来自框架或nio的
发布于 2010-01-13 19:36:05
FileUtils有iterateFiles
和listFiles
方法。试一试。(来自commons-io)
编辑:您可以对不同方法的基准进行check here。commons-io方法似乎很慢,所以选择一些更快的from here (如果重要的话)
发布于 2010-01-13 19:47:58
//准备运行
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:\\" );
}
}
发布于 2012-07-26 04:36:19
不需要外部库。
返回一个Collection,这样您就可以在调用后对它做任何想做的事情。
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;
}
https://stackoverflow.com/questions/2056221
复制相似问题