来自文件path的Java JTree目录结构

我一直试图让我的头在这附近,所以也许你们中的一些人可以帮助我。 我有一个完整path的文件列表(这些只是文件在另一台机器上的string),例如:

C:\a\b\c\file1.txt C:\a\b\c\file2.txt C:\a\d\file3.txt C:\e\file4.txt 

我想创build一个Jtree来显示这样的目录结构:

 C: a b c file1.txt file2.txt d file3.tct e file4.txt 

我一直在拆分string,所以我最终得到一个数组列表:

 "C:","a","b","c","file1.txt" "C:","a","b","c","file2.txt" "C:","a","d","file3.txt" "C:","e","file4.txt" 

现在我想一次添加一个索引,但是如果这个值已经存在,那么跳到下一个索引。 即它将添加第一个数组,然后在第二个数组上它将在树的第0层上已经存在一个“C:”,因此移动到树的第1级和数组的索引1。 我有的问题是,我不知道如何以这种方式浏览树。

任何build议和或其他实现?

File执行parsing和维护path的工作。 正如你想要在JTree显示文件,你可能还需要创build一个相应的TreeModel比如FileTreeModel , 这里引用。 因为它实现了TreeModel ,所以它可以被设置为一个JTree模型,然后你就可以拥有一个普通的标准JTree 。 您可以使用任何装载的文件系统中的任何文件作为根,例如:

 TreeModel model = new FileTreeModel(new File(System.getProperty("user.dir"))); JTree tree = new JTree(model); 

图片

我不确定FileTreeModel是否是最好的方法 – 它扫描整个目录。 从你写的,我想你只想显示你的列表中的path。
你可以通过使用这里描述的TreePathsTreeModel来实现它: 如何在jTree中显示Windowsregistry?
您只需要将string的文件path转换为TreePath对象。

首先,sortingstring(在分割之前)。

如何处理第一行是显而易见的,我不会对此发表评论。 在第二行中,search已经build立的树并检查节点是否已经存在。 find不存在的之后,请按照第一行完成的步骤进行操作。