Bonjour,

actuellement, je me sers des fonctions de File pour ouvrir des dossiers/fichiers etc...afin de tester si un File est bien un dossier ou un fichier etc...et l'afficher sur un JTree.

J'ai donc ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
private DefaultMutableTreeNode GenerationDirectory(File repertoire){
 
		DefaultMutableTreeNode noeud_directory = new DefaultMutableTreeNode(repertoire,true);
		File[] liste = null; 
		int i = 0;
 
 
		liste = repertoire.listFiles();    //récupération des fichiers et sous rep de root
		if(liste!=null){
 
			for(i = 1; i<liste.length; i++){
 
				DefaultMutableTreeNode buffer_tree = null;    //Création d'un noeud pour y stocker un nom de répertoire
				if(liste[i].isDirectory()){				 //Test si l'élement contenu dans liste est un répertoire ou un fichier, 
					buffer_tree = GenerationDirectory(liste[i]);
				}
				else{									// Cas ou buffer est un fichier
					buffer_tree = new DefaultMutableTreeNode(liste[i],false);
				}
				noeud_directory.add(buffer_tree);
			}
		}
 
		return noeud_directory;
	}
Il fonctionne correctement et je n'ai rien à redire dessus, il me va.

Sauf que j'aimerai le ré utiliser pour une autre raison, mais une partie de ce code me dérange pour mon besoin:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
for(i = 1; i<liste.length; i++){
 
				DefaultMutableTreeNode buffer_tree = null;    //Création d'un noeud pour y stocker un nom de répertoire
				if(liste[i].isDirectory()){				 //Test si l'élement contenu dans liste est un répertoire ou un fichier, 
					buffer_tree = GenerationDirectory(liste[i]);
				}
				else{									// Cas ou buffer est un fichier
					buffer_tree = new DefaultMutableTreeNode(liste[i],false);
				}
				noeud_directory.add(buffer_tree);
			}
Dans la boucle For, on peut voir que je teste si l'objet file est un dossier ou non, si tel est le cas, je rappele à nouveau la même méthode pour modifier mon indice etc..je le vais avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
buffer_tree = GenerationDirectory(liste[i]);
Sauf que voila, j'aimerai éviter de rappeler sans cesse la méthode si le File est un dossier, j'aimerai trouver un moyen, pour que le code ne se rappelle pas.

Est ce qu'un While ou un Do While pourrait fonctionner? J'ai bien essayé, mais j'ai des exceptions qui apparaissent...

Qu'en pensez vous? est ce possible...?