我的任务是显示 PC 驱动器的所有目录/文件的树,我有一个DirectoryNode
扩展DefaultMutableTreeNode
为File
field的类directoryPath
。我递归地构建节点:
public void buildDirectoryTree(){
if(!directoryPath.isDirectory()){
return;
}
for(File f : directoryPath.listFiles()){
if(f.isHidden() || !f.exists()) continue;
DirectoryNode newChild = new DirectoryNode(f);
add(newChild);
newChild.buildDirectoryTree();
}
}
它适用于具体目录,但是当我尝试将它用于整个驱动器或一些大目录时,JTree
这个节点根本不显示,我认为它遇到了特定目录的问题。我添加了存在和隐藏检查来跳过这个问题的根源,但它没有帮助。
此外,exists
,isHidden
并isDirectory
返回false
我的一些有效目录目录(我使用的是 Windows 10)。