设置<>仅保留上次文件夹值

问题描述 投票:0回答:1

我使用以下代码生成文件夹中的文件夹和文件列表,我想获得一个唯一扩展名列表。通过扩展,我在最后一个“。”之后对任何内容进行分类。在文件字符串中。我有下面的代码,它将生成一个完整的文件夹结构列表,但似乎只生成迭代的最后一个目录的扩展。

如何解决这个问题,以便将所有扩展程序添加到我的列表中?

   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));
            }
        }
    }
}
java netbeans
1个回答
1
投票

你继续在循环中创建一个新的HashSet,它丢弃了前一个。将getExt的声明更改为:

Set<String> getExt = new HashSet<String>();

然后删除

        getExt = new HashSet<String>();
© www.soinside.com 2019 - 2024. All rights reserved.