[英]recursive creation of tree java
我試圖通過提供rootfolder的路徑來創建文件系統的JTree,但是首先,我試圖通過遞歸創建並打印直到葉節點的節點。
以下是我的代碼,我不明白為什么在第一級之后不打印,也許它沒有遞歸調用createTree()...有人可以告訴我如何使其工作嗎(int i = 0在方法外部聲明)
public void createTree(String rootPath)
{
rootNode=new DefaultMutableTreeNode(rootPath);
File file=new File(rootPath);
if(file.isDirectory()&&file.list()!=null)
{
System.out.printf("\nThis folder contains %d files/folders\n" , file.list().length);
for(String node:file.list())
{
nodes[i]=new DefaultMutableTreeNode(node);
System.out.println(" - "+nodes[i]);
createTree(node);
i++;
}
}
else if(file.isFile())
{
nodes[i]=new DefaultMutableTreeNode(rootPath);
i++;
return;
}
else
return;
}
file.list()
僅返回目錄的相對名稱,因此在將節點傳遞到下一個遞歸調用時,您需要附加父路徑:
createTree(rootPath + File.seperator + node);
程序運行的根路徑永遠不會更改,因此,使用相對文件名(內部目錄)而沒有來自根路徑的路徑不適用於file = new File(<relative-file-name>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.