我使用以下代码生成文件夹中的文件夹和文件列表,我想获得一个唯一扩展列表。通过扩展,我可以在最后一次"之后对任何内容进行分类。"在文件字符串中。我有下面的代码,它将生成一个完整的文件夹结构列表,但似乎只生成迭代的最后一个目录的扩展。
如何解决这个问题,以便将所有扩展程序添加到我的列表中?
Set<String> getExt;
public void showFiles(File[] files) {
for (File file : files) {
if (file.isDirectory()) {
System.out.println("Directory: " + file.getName());
showFiles(file.listFiles());
} else {
System.out.println("File: " + file.getName());
getExt = new HashSet<String>();
for (File f: files) {
getExt.add(f.getName().substring(f.getName().lastIndexOf(".") + 1));
}
}
}
}
答案 0 :(得分:1)
你继续在循环中创建一个新的HashSet
,丢弃前一个。{1}}。将getExt
的声明更改为:
Set<String> getExt = new HashSet<String>();
然后删除
getExt = new HashSet<String>();