我使用以下代码生成文件夹中的文件夹和文件列表,我想获得一个唯一扩展名列表。通过扩展,我在最后一个“。”之后对任何内容进行分类。在文件字符串中。我有下面的代码,它将生成一个完整的文件夹结构列表,但似乎只生成迭代的最后一个目录的扩展。
如何解决这个问题,以便将所有扩展程序添加到我的列表中?
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));
}
}
}
}
你继续在循环中创建一个新的HashSet
,它丢弃了前一个。将getExt
的声明更改为:
Set<String> getExt = new HashSet<String>();
然后删除
getExt = new HashSet<String>();