【发布时间】:2011-10-10 05:08:13
【问题描述】:
我正在尝试获取目录及其子目录中所有文件的列表。我目前的递归方法如下:
private void printFiles(File dir) {
for (File child : dir.listFiles()) {
if (child.isDirectory()) {
printFiles(child);
} else if (child.isFile()) {
System.out.println(child.getPath());
}
}
}
printFiles(new File("somedir/somedir2"));
但是,我希望有一种非递归方式(可能是现有的 API 调用)来执行此操作。如果不是,这是最干净的方法吗?
【问题讨论】:
-
Recursively list files in Java 的可能副本。标题是递归的,但第一个答案是库调用。
-
@cularis 不是重复的,因为我试图以非递归方式进行,而另一个 SO 问题是要求以递归方式进行。
-
递归有什么问题?没有用于此的 API,但是您仍然可以使用
while循环和其他一些有趣的业务来完成它,但这会很混乱。 -
@Kshitij 在回复之前阅读完整的评论和答案。
-
无论哪种方式,我都相信这个问题为社区提供了价值,因为搜索它的人乍一看会因为标题而忽略另一个问题(就像我一样)
标签: java file directory subdirectory