Java JTree structure du répertoire de chemins d'accès aux fichiers
J'ai essayé d'obtenir ma tête autour de ce alors peut-être que certains d'entre vous peut m'aider. J'ai une liste de fichiers avec leur chemin complet (ce sont seulement les chaînes de caractères les fichiers sont sur une autre machine), l'e.g:
C:\a\b\c\file1.txt
C:\a\b\c\file2.txt
C:\a\d\file3.txt
C:\e\file4.txt
Je veux créer un Jtree pour montrer la structure de répertoire comme ceci:
C:
a
b
c
file1.txt
file2.txt
d
file3.tct
e
file4.txt
J'ai été crève la chaîne sur l'élément de séparation donc je me retrouve avec une liste de tableaux comme:
"C:","a","b","c","file1.txt"
"C:","a","b","c","file2.txt"
"C:","a","d","file3.txt"
"C:","e","file4.txt"
Maintenant, je veux ajouter un index à un moment, mais si la valeur existe déjà, à ce niveau, puis de passer à la prochaine index. j'.e, il ajoute de la le premier tableau, puis sur le deuxième tableau, il serait aller sur le niveau 0 de l'arbre, il existe déjà un "C:" afin de passer le niveau 1 de l'arbre et de l'indice 1 de la matrice. Les questions que j'ai est que je ne suis pas sûr de la façon de naviguer dans l'arborescence.
Et vos suggestions ou des implémentations alternatives?
OriginalL'auteur ubergam3r | 2013-02-12
Vous devez vous connecter pour publier un commentaire.
Laisser
File
faire le travail d'analyse et de maintenir les chemins d'accès. Que vous le souhaitez pour afficher les fichiers dans unJTree
, vous pourriez aussi bien la création d'un correspondantTreeModel
commeFileTreeModel
, cité ici. Parce qu'il met en œuvreTreeModel
, il peut être défini comme unJTree
's modèle et puis vous auriez un bon vieux standardJTree
." Vous pouvez utiliser n'importe quelFile
dans tout système de fichiers monté comme la racine, par exemple:OriginalL'auteur trashgod
Je ne suis pas sûr si FileTreeModel est la meilleure façon - il scanne les répertoires. À partir de ce que vous avez écrit, je suppose que vous ne voulez afficher que les chemins à partir de votre liste.
Vous pouvez la réaliser à l'aide de TreePathsTreeModel décrit ici: Comment je montre de Registre de Windows en jTree?
Vous avez juste à convertir filepaths de chaînes en TreePath objets.
OriginalL'auteur murison
D'abord, trier les Chaînes de caractères (avant de les diviser).
Comment le processus de la première ligne est évidente, et je ne vais pas le commenter. Dans la deuxième ligne, de recherche, de la déjà construit l'arbre et de vérifier si les nœuds existent déjà. Après vous en trouver un qui n'existe pas, suivez la procédure dans la première ligne.
OriginalL'auteur SJuan76