gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:34:36 24 4
gpt4 key购买 nike

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

我设置了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

关于java - 如何从路径到树列出文件和文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com