递归地将文件添加到JList-仅添加最后一个文件夹中的文件

盖·史汀普森(Guy Stimpson)

再次挣扎​​。

我递归地搜索目录,并通过检查其扩展名来挑选音频文件。一旦找到,每个都将添加到JList中(在主类中-此处未显示)。但是,仅最后一个文件夹的文件被添加到列表中。这是代码:

public void List(String path) throws InterruptedException, IOException {

        File root = new File(path);
        File[] list = root.listFiles();
        DefaultListModel lm = new DefaultListModel();

        if (list == null) {
            return;
        }

        for (File f : list) {
            if (f.isDirectory()) {
                List(f.getAbsolutePath());

            } else if (f.isFile()) {
                String outPath = f.getAbsolutePath();
                try {
                    String ext = outPath.substring(outPath.lastIndexOf(".") + 1);
                    if (ext.equals("wma") || ext.equals("m4a") || ext.equals("mp3")) {
                        lm.addElement(f.getAbsolutePath());
                    }
                } catch (Exception e) {
                    System.out.println(outPath + " is not a valid file!!!!!");
                }
                HomeScreen.Library.setModel(lm);

            }

        }

    }

我尝试用lm.addElement(f.getAbsolutePath())简单的替换System.out.println(f.getAbsolutePath),所有文件均按预期打印。我也尝试过HomeScreen.Library.setModel(lm);进入不同的领域,但这通常导致什么都没有添加到列表中。

我认为必须发生的是,每次找到新文件夹时,都会以某种方式重置列表模型,并将文件添加到现在为空的模型中。

有没有解决的办法?我在代码中做些奇怪的操作导致了这种明显的复位吗?

提前谢谢了,

盖伊

icza

问题是您DefaultListModelList()方法的每次调用中都创建了一个新的这解释了为什么您认为

每次找到新文件夹时,都会以某种方式重置列表模型,并将文件添加到现在为空的模型中

我认为您想将文件添加到相同的文件,DefaultListModel以便在List()方法之外创建文件,然后将其作为参数传递或使其成为List()可以访问的实例字段

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归地将文件添加到JList-仅添加最后一个文件夹中的文件

来自分类Dev

批量将多个文件添加到一个文件夹

来自分类Dev

一个文件夹被神秘地添加到我的.gitignore文件中

来自分类Dev

如何将一个repo文件夹添加到其父文件夹的repo

来自分类Dev

以递归方式将文件夹中的cpp文件添加到“编译源”

来自分类Dev

将新的WPF窗口添加到另一个文件夹

来自分类Dev

将新的WPF窗口添加到另一个文件夹

来自分类Dev

仅将层添加到脚本CS6 ver 13中的最后一个PSD文件中

来自分类Dev

将Git存储库添加到另一个Git存储库的子文件夹中

来自分类Dev

wxpython拖放一个文件夹,然后将另一个文件夹添加到列表

来自分类Dev

wxpython拖放一个文件夹,然后将另一个文件夹添加到列表

来自分类Dev

如何仅打印最后一个文件夹的数组名称

来自分类Dev

将文件夹添加到罐子中

来自分类Dev

将文件夹添加到罐子中

来自分类Dev

递归地将文件添加到所有子目录

来自分类Dev

递归地将文件添加到所有子目录

来自分类Dev

递归地将目录名添加到文件名

来自分类Dev

将最后一列从另一个文件添加到文件

来自分类Dev

Foreach循环错误地将文件添加到父文件夹

来自分类Dev

cat:将文本文件作为Dolphin动作添加到另一个文件夹中

来自分类Dev

如何使用PowerShell从热文件夹中获取最后一个文件?

来自分类Dev

如何仅将选定文件夹中的内容添加到jar

来自分类Dev

如何使用vbscript在文件夹中查找最后一个mdified子文件夹

来自分类Dev

一个服务会添加到sails.js的api / services文件夹中

来自分类Dev

光盘上的最后一个文件夹tcsh

来自分类Dev

如何在另一个文件夹中添加源文件

来自分类Dev

Zsh:以递归方式将文件夹添加到$ path

来自分类Dev

在www上添加了一个文件夹。在浏览器中显示为文件夹结构

来自分类Dev

在一系列文件夹中添加一个文件夹,然后重命名其他文件夹

Related 相关文章

  1. 1

    递归地将文件添加到JList-仅添加最后一个文件夹中的文件

  2. 2

    批量将多个文件添加到一个文件夹

  3. 3

    一个文件夹被神秘地添加到我的.gitignore文件中

  4. 4

    如何将一个repo文件夹添加到其父文件夹的repo

  5. 5

    以递归方式将文件夹中的cpp文件添加到“编译源”

  6. 6

    将新的WPF窗口添加到另一个文件夹

  7. 7

    将新的WPF窗口添加到另一个文件夹

  8. 8

    仅将层添加到脚本CS6 ver 13中的最后一个PSD文件中

  9. 9

    将Git存储库添加到另一个Git存储库的子文件夹中

  10. 10

    wxpython拖放一个文件夹,然后将另一个文件夹添加到列表

  11. 11

    wxpython拖放一个文件夹,然后将另一个文件夹添加到列表

  12. 12

    如何仅打印最后一个文件夹的数组名称

  13. 13

    将文件夹添加到罐子中

  14. 14

    将文件夹添加到罐子中

  15. 15

    递归地将文件添加到所有子目录

  16. 16

    递归地将文件添加到所有子目录

  17. 17

    递归地将目录名添加到文件名

  18. 18

    将最后一列从另一个文件添加到文件

  19. 19

    Foreach循环错误地将文件添加到父文件夹

  20. 20

    cat:将文本文件作为Dolphin动作添加到另一个文件夹中

  21. 21

    如何使用PowerShell从热文件夹中获取最后一个文件?

  22. 22

    如何仅将选定文件夹中的内容添加到jar

  23. 23

    如何使用vbscript在文件夹中查找最后一个mdified子文件夹

  24. 24

    一个服务会添加到sails.js的api / services文件夹中

  25. 25

    光盘上的最后一个文件夹tcsh

  26. 26

    如何在另一个文件夹中添加源文件

  27. 27

    Zsh:以递归方式将文件夹添加到$ path

  28. 28

    在www上添加了一个文件夹。在浏览器中显示为文件夹结构

  29. 29

    在一系列文件夹中添加一个文件夹,然后重命名其他文件夹

热门标签

归档