OVH Cloud OVH Cloud

Arborescence de disques et de fichiers

5 réponses
Avatar
Damien
Bonjour,
Je suis débutant, et je cherche à lister l'arborescence des répertoires et
des fichiers, avec leur chemin complet, et de les mémoriser dans un document
texte.
Est-ce que quelqu'un a une idée ?

Je pense que cela a déjà dû être développé.

Si quelqu'un a une idée sur la question, je le remercie d'avance.

5 réponses

Avatar
Tom
Bonjour,
Je suis débutant, et je cherche à lister l'arborescence des répertoires et
des fichiers, avec leur chemin complet, et de les mémoriser dans un document
texte.
Est-ce que quelqu'un a une idée ?

Je pense que cela a déjà dû être développé.

Si quelqu'un a une idée sur la question, je le remercie d'avance.




cf. La classe File pour lister les fichiers & par ex. PrintWriter pour
la sortie fichier.

Utilisation du printWriter (on bufferise au passage pour accélérer un
peu le traitement, mais bon, comme le println flush la ligne, ça ne sert
pas à grand chose...)

PrintWriter pw = new PrintWriter(new BufferedOutputStream(new
FileOutputStream("toto.txt")));

Pour écrire : pw.println("ma chaîne"); // Saut de ligne auto

à la fin : pw.flush(); pw.close();


voici 2 petites méthodes qui t'afficheront (sur la sortie standard)
récursivement la liste des fichiers de ton OS :)


/**
* Liste les fichiers du système.
*/
public void lister(){
// La liste des racines
File[] racines = File.listRoots();
for(int i=0;i<racines.length;i++){
System.out.println("Disque "+racines[i].getPath());
listerRepertoire(racines[i], 0);
}
}

/**
* Liste récursivement un répertoire & les affiche.
* @param rep Le répertoire (ou le fichier) à afficher
* @param prof la profondeur (pour faire un zoli affichage)
*/
private void listerRepertoire(File rep, int prof){
String tab = ""; // La tabulation
for(int i=0;i<prof;i++){
tab += "t";
}

// Le nom du répertoire (voire du fichier).
// NB : getAbsolutePath donne le chemin complet
System.out.println(tab + rep.getName());

// On fait ça récursivement si c'est un répertoire
// & bien sûr, si on peut le lire
if(rep.isDirectory() && rep.canRead()){
File[] liste = rep.listFiles();
for(int i=0;i<liste.length;i++){
listerRepertoire(liste[i], prof + 1);
}
}
}




Tom

Avatar
Damien
Merci beaucoup à toi Tom, je vais tester.
Mais qu'en est-il de la possibilité de cocher les répertoires ou fichiers
voulus ?

"Tom" a écrit dans le message de news:
bj7io7$e34$


Bonjour,
Je suis débutant, et je cherche à lister l'arborescence des répertoires
et


des fichiers, avec leur chemin complet, et de les mémoriser dans un
document


texte.
Est-ce que quelqu'un a une idée ?

Je pense que cela a déjà dû être développé.

Si quelqu'un a une idée sur la question, je le remercie d'avance.




cf. La classe File pour lister les fichiers & par ex. PrintWriter pour
la sortie fichier.

Utilisation du printWriter (on bufferise au passage pour accélérer un
peu le traitement, mais bon, comme le println flush la ligne, ça ne sert
pas à grand chose...)

PrintWriter pw = new PrintWriter(new BufferedOutputStream(new
FileOutputStream("toto.txt")));

Pour écrire : pw.println("ma chaîne"); // Saut de ligne auto

à la fin : pw.flush(); pw.close();


voici 2 petites méthodes qui t'afficheront (sur la sortie standard)
récursivement la liste des fichiers de ton OS :)


/**
* Liste les fichiers du système.
*/
public void lister(){
// La liste des racines
File[] racines = File.listRoots();
for(int i=0;i<racines.length;i++){
System.out.println("Disque "+racines[i].getPath());
listerRepertoire(racines[i], 0);
}
}

/**
* Liste récursivement un répertoire & les affiche.
* @param rep Le répertoire (ou le fichier) à afficher
* @param prof la profondeur (pour faire un zoli affichage)
*/
private void listerRepertoire(File rep, int prof){
String tab = ""; // La tabulation
for(int i=0;i<prof;i++){
tab += "t";
}

// Le nom du répertoire (voire du fichier).
// NB : getAbsolutePath donne le chemin complet
System.out.println(tab + rep.getName());

// On fait ça récursivement si c'est un répertoire
// & bien sûr, si on peut le lire
if(rep.isDirectory() && rep.canRead()){
File[] liste = rep.listFiles();
for(int i=0;i<liste.length;i++){
listerRepertoire(liste[i], prof + 1);
}
}
}




Tom




Avatar
Tom
Tu peux par ex. utiliser un JTree avec des checkbox. cf :
http://www.codeguru.com/java/articles/185.shtml

Tom

Merci beaucoup à toi Tom, je vais tester.
Mais qu'en est-il de la possibilité de cocher les répertoires ou fichiers
voulus ?



Avatar
Damien
C'est bien avec des checkbox que je souhaite faire une sélection.
Merci beaucoup.

"Tom" a écrit dans le message de news:
bj9tvb$cbl$
Tu peux par ex. utiliser un JTree avec des checkbox. cf :
http://www.codeguru.com/java/articles/185.shtml

Tom

Merci beaucoup à toi Tom, je vais tester.
Mais qu'en est-il de la possibilité de cocher les répertoires ou
fichiers


voulus ?






Avatar
Damien
J'ai cependant un problème avec :
import jp.gr.java_conf.tame.swing.tree.*;

Où est-ce que je pourrais trouver tous les objets manquants ?


"Damien" a écrit dans le message de news:
bjemj9$tta$
C'est bien avec des checkbox que je souhaite faire une sélection.
Merci beaucoup.

"Tom" a écrit dans le message de news:
bj9tvb$cbl$
Tu peux par ex. utiliser un JTree avec des checkbox. cf :
http://www.codeguru.com/java/articles/185.shtml

Tom

Merci beaucoup à toi Tom, je vais tester.
Mais qu'en est-il de la possibilité de cocher les répertoires ou
fichiers


voulus ?