如何列出从路径到树的文件和文件夹?

How to list files and folders from path to tree?

我试过该代码将目录列出到树

我设置name = "D:/folder"

文件夹目录有很多文件和文件夹

但我得到的结果是一个名称为(文件夹)的节点

public class tree {
    JTree tree;
    DefaultMutableTreeNode node1;
    DefaultMutableTreeNode temp;
    DefaultMutableTreeNode temp2;
    DefaultTreeModel model;
    String name = new currentfolder().getInitial(); // path to directory that its
                                                    // content appear in tree
    public tree() {
        tree = new JTree();
        node1 = new DefaultMutableTreeNode(name);
        temp = node1;
        import_data(new File(name));
        temp.setParent(node1);
        model = new DefaultTreeModel(node1);
        tree.setModel(model);
        model.reload();
        tree.setOpaque(false);
        tree.setBorder(javax.swing.BorderFactory.createCompoundBorder(
          new javax.swing.border.SoftBevelBorder(
          javax.swing.border.BevelBorder.RAISED),
          javax.swing.BorderFactory.createTitledBorder("")));
          tree.setVisible(true);
    }

    public void import_data(File file)    {
        if (file.isFile()) {
            temp2 = new DefaultMutableTreeNode(file.getName());
            temp2.setParent(temp);
            return;
        } else {
            if (file.isDirectory()) {
                if (!file.getName().equals(name)) {
                    temp2 = new DefaultMutableTreeNode(file.getName());
                    temp2.setParent(temp);
                    temp = temp2;
                }
            File[] f = file.listFiles();
            for (int i = 0; i < f.length; i++) {
                import_data(f[i]);
            }
        }
    }
}

那我该如何解决呢?

如果有针对该代码的修复会更好,否则会以另一种方式列出到树

要将节点添加到树中,您需要调用DefaultMutableTreeNode.add (temp.add(temp2))。调用 setParent() 不会将节点添加到树中。

你还需要修改import_data,让它接受两个参数:目录的File和目录对应的DefaultMutableTreeNode