【发布时间】:2013-04-19 09:54:54
【问题描述】:
我正在寻找在给定目录中查找所有同名文件夹的解决方案。
所以我的文件夹结构是这样的:
Root
| | |
android windows ios
| | | | | |
focus normal focus normal focus normal
注意:客户端和图标集之间有更多文件夹,这就是我需要递归的原因。
我想获得一个包含所有路径的 ArrayList,例如普通文件夹。 虽然递归总是让我很困惑,但我无法做到。
这是我的第一次尝试,它应该返回根文件夹中包含的 ALL 目录(参数路径)。字符串图标集应在之后定义搜索文件夹的名称。
private static ArrayList<String> getAllIconSetFolders(String path, String iconset) {
ArrayList<String> pathes = new ArrayList<String>();
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
if (file != null && file.isDirectory()) {
pathes.addAll(getAllIconSetFolders(file.getAbsolutePath(), iconset));
}
}
return pathes;
}
在这种情况下,它将返回一个空的 ArrayList。
如何获取(String iconset = "normal" 时的普通文件夹)的所有路径,以便我的结果如下所示:
- “根/android/[...]/正常”
- “根/windows/[...]/正常”
- “根/ios/[...]/正常”
【问题讨论】:
-
file不能是null。删除该检查。递归地从根文件夹中获取所有文件并不难,你应该可以用谷歌搜索它。 -
我在一些 JVM 上读到它可能会发生,这就是它存在的原因
-
你还有参考吗?我很想看看。
-
你有权限读取文件夹和文件吗?
-
我去看看。是的,我想我可以这样做来接收所有子文件夹,但是我怎样才能将具有给定名称的文件夹添加到我的列表中?是的,我拥有所有权限