Arborescence du disque dur avec jtree

Contenu du snippet

Ce code permet de voir l'arborescence de votre disque dur grace à Jtree. Seul petit problème il faut qu'une disquette soit dans le lecteur. Siquelqu'un savait comment éviter le message d'erreur lorsqu'il n'y a pas de disquette, ça serait sympa de me le dire.

Source / Exemple :


/**************************************************************
				nom: arbre2.java
				Programmé par Draven
				Le 07/09/2003

                                                                                                                            • /
import java.lang.*; import javax.swing.*; import javax.swing.tree.*; import java.io.*; public class arbre2 extends JFrame { public arbre2() { int i; File[] lecteurs; JTree arbre = new JTree(); /* création d'un noeud */ DefaultMutableTreeNode racine = new DefaultMutableTreeNode("Poste de travail"); lecteurs=File.listRoots(); for(i=0;i<lecteurs.length;i++) { /* créé un noeud pour chaque lecteur */ DefaultMutableTreeNode noeud = new DefaultMutableTreeNode(lecteurs[i]); /* créé l'arborescence pour chaque lecteur*/ ajout_dossier(lecteurs[i],noeud); /* ajouter le lecteur avec son arborescence au noeud racine*/ racine.add(noeud); } /* model de l'arbre */ DefaultTreeModel model =new DefaultTreeModel(racine); arbre.setModel(model); /*ajouter l'arbre à la JFrame*/ getContentPane().add(arbre); /* fermer l'application */ setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] arg) { arbre2 Arbre = new arbre2(); Arbre.setTitle("Arbre"); Arbre.setSize(150,700); Arbre.setVisible(true); } /**************************************************************************
  • nom : ajout_dossier *
  • rôle : ajouter les dossiers et fichiers d'un lecteur *
                                                                                                                                                    • /
public void ajout_dossier(File lecteur,DefaultMutableTreeNode noeud) { int i; File[] liste; /* listFiles retourne tous les nom de fichiers et de sous-répertoires contenu dans un répertoire*/ liste=lecteur.listFiles(); try { for(i=0;i<liste.length;i++) { /* on teste si c'est un répertoire */ if(liste[i].isDirectory()==true) { /* sitel est le cas on crée un nouveau noeud */ DefaultMutableTreeNode sous_rep = new DefaultMutableTreeNode(liste[i]); /*que l'on ajoute au noeud précédent */ noeud.add(sous_rep); /* et on regarde le contenu de ce nouveau répertoire */ ajout_dossier(liste[i],sous_rep); } /* si ce n'est pas un dossier c'est donc un fichier que l'on va donc gréffé au noeud courant*/ else noeud.add(new DefaultMutableTreeNode(liste[i])); } } catch(NullPointerException e) { //exception que l'on obtient lorsqu'il n'y a plus de répertoire ou de fichier } } }

Conclusion :


Je vais essayer d'améliorer la vitesse d'excecution en mettant en place des threads.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.