oulanos
Messages postés25Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention10 mai 2010
-
25 juin 2009 à 14:20
oulanos
Messages postés25Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention10 mai 2010
-
26 juin 2009 à 16:15
Bonjour, je viens vers vous parce que je galère depuis un petit moment sur un code qui va apparaitre tout con pour la plupart d'entre vous mais.. je galère pas mal pour y arriver:
Je veux lister le contenu d'un répertoire donné ainsi que le contenu des sous répertoires le constituant.
Dans le genre:
/Dossier principal
---fichier1.txt
---fichier2.txt
Dossier principal
/ Dossier secondaire:
-fichier3.txt
-fichier4.txt
Et ainsi de suite et que tout ce petit monde s'inscrive dans un fichier texte. En gros c'est pouvoir faire un listing d'un répertoire pour connaitre tous les fichiers et sous répertoires qui le compose pour faire une sorte d'arborescence dans un fichier texte.
Et donc me voilà parti en croisade mais je n'y arrive pas, soit j'arrive bien à tout lister et le problème est qu'il y a à chaque fois répétition du répertoire au lieu de grouper, exemple en illustration:
/-Conférences Linux
.........conférence.mp4
/-Conférences Linux
.........Dream Theater - A rite of Passage.mp3
Par exemple au lieu d'avoir
/-Conférences Linux
.........conférence.wav
.........Dream Theater - A rite of Passage.mp3
/-Second Répertoire
.........autrefichier.txt
.........autrefichier.txt
Bref je galère grâve, sachant que dans le code je fais aussi un test sur la première lettre du dossier/répertoire pour le classer dans une catégorie : A, B , C selon la lettre de départ.
public void findFiles(String directoryPath) throws IOException {
File directory = new File(directoryPath);
List a_list = new ArrayList();
List b_list = new ArrayList();
List c_list = new ArrayList();
List d_list = new ArrayList();
List e_list = new ArrayList();
List f_list = new ArrayList();
List g_list = new ArrayList();
List h_list = new ArrayList();
List i_list = new ArrayList();
List j_list = new ArrayList();
List k_list = new ArrayList();
List l_list = new ArrayList();
List m_list = new ArrayList();
List n_list = new ArrayList();
List o_list = new ArrayList();
List p_list = new ArrayList();
List q_list = new ArrayList();
List r_list = new ArrayList();
List s_list = new ArrayList();
List t_list = new ArrayList();
List u_list = new ArrayList();
List v_list = new ArrayList();
List w_list = new ArrayList();
List x_list = new ArrayList();
List y_list = new ArrayList();
List z_list = new ArrayList();
List repertoire = new ArrayList();
List fichier_dans_repertoire = new ArrayList();
String nomfich;
nomfich = "C:\\liste_lolo2.txt";
PrintWriter sortie = new PrintWriter (new FileWriter (nomfich));
if(!directory.exists()){
System.out.println("Le fichier/répertoire '"+directoryPath+"' n'existe pas");
}else if(!directory.isDirectory()){
System.out.println("Le chemin '"+directoryPath+"' correspond à un fichier et non à un répertoire");
}else
{
File[] subfiles = directory.listFiles();
for(int i=0 ; i<subfiles.length; i++){
if(subfiles[i].isDirectory()){
System.out.println("Nous avons "+subfiles[i].getName()+" qui est un répertoire");
String directoryPath2 = subfiles[i].getAbsolutePath();
String directory_name = subfiles[i].getName();
sortie.println(directory_name);
System.out.println(directory_name);
File directory2 = new File(directoryPath2);
File[] subfiles2 = directory2.listFiles();
{
{
System.out.println("****** LISTE A ******");
sortie.println("****** LISTE A ******");
int k = 0;
while(k < a_list.size()){
System.out.println(a_list.get(k));
sortie.println(a_list.get(k));
k++; }
}
{
System.out.println("****** LISTE B ******");
sortie.println("****** LISTE B ******");
int k = 0;
while(k < b_list.size()){
System.out.println(b_list.get(k));
sortie.println(b_list.get(k));
k++; }
}
{
System.out.println("****** LISTE C ******");
sortie.println("****** LISTE C ******");
int k = 0;
while(k < c_list.size()){
System.out.println(c_list.get(k));
sortie.println(c_list.get(k));
k++; }
}
{
System.out.println("****** LISTE D ******");
sortie.println("****** LISTE D ******");
int k = 0;
while(k < d_list.size()){
System.out.println(d_list.get(k));
sortie.println(d_list.get(k));
k++; }
}
{
System.out.println("****** LISTE E ******");
sortie.println("****** LISTE E ******");
int k = 0;
while(k < e_list.size()){
System.out.println(e_list.get(k));
sortie.println(e_list.get(k));
k++; }
}
{
System.out.println("****** LISTE F ******");
sortie.println("****** LISTE F ******");
int k = 0;
while(k < f_list.size()){
System.out.println(f_list.get(k));
sortie.println(f_list.get(k));
k++; }
}
{
System.out.println("****** LISTE G ******");
sortie.println("****** LISTE G ******");
int k = 0;
while(k < g_list.size()){
System.out.println(g_list.get(k));
sortie.println(g_list.get(k));
k++; }
}
{
System.out.println("****** LISTE H ******");
sortie.println("****** LISTE H ******");
int k = 0;
while(k < h_list.size()){
System.out.println(h_list.get(k));
sortie.println(h_list.get(k));
k++; }
}
{
System.out.println("****** LISTE I ******");
sortie.println("****** LISTE I ******");
int k = 0;
while(k < i_list.size()){
System.out.println(i_list.get(k));
sortie.println(i_list.get(k));
k++; }
}
{
System.out.println("****** LISTE J ******");
sortie.println("****** LISTE J ******");
int k = 0;
while(k < j_list.size()){
System.out.println(j_list.get(k));
sortie.println(j_list.get(k));
k++; }
}
{
System.out.println("****** LISTE K ******");
sortie.println("****** LISTE K ******");
int k = 0;
while(k < k_list.size()){
System.out.println(k_list.get(k));
sortie.println(k_list.get(k));
k++; }
}
{
System.out.println("****** LISTE L ******");
sortie.println("****** LISTE L ******");
int k = 0;
while(k < l_list.size()){
System.out.println(l_list.get(k));
sortie.println(l_list.get(k));
k++; }
}
{
System.out.println("****** LISTE M ******");
sortie.println("****** LISTE M ******");
int k = 0;
while(k < m_list.size()){
System.out.println(m_list.get(k));
sortie.println(m_list.get(k));
k++; }
}
{
System.out.println("****** LISTE N ******");
sortie.println("****** LISTE N ******");
int k = 0;
while(k < n_list.size()){
System.out.println(n_list.get(k));
sortie.println(n_list.get(k));
k++; }
}
{
System.out.println("****** LISTE O ******");
sortie.println("****** LISTE O ******");
int k = 0;
while(k < o_list.size()){
System.out.println(o_list.get(k));
sortie.println(o_list.get(k));
k++; }
}
{
System.out.println("****** LISTE P ******");
sortie.println("****** LISTE P ******");
int k = 0;
while(k < p_list.size()){
System.out.println(p_list.get(k));
sortie.println(p_list.get(k));
k++; }
}
{
System.out.println("****** LISTE Q ******");
sortie.println("****** LISTE Q ******");
int k = 0;
while(k < q_list.size()){
System.out.println(q_list.get(k));
sortie.println(q_list.get(k));
k++; }
}
{
System.out.println("****** LISTE R ******");
sortie.println("****** LISTE R ******");
int k = 0;
while(k < r_list.size()){
System.out.println(r_list.get(k));
sortie.println(r_list.get(k));
k++; }
}
{
System.out.println("****** LISTE S ******");
sortie.println("****** LISTE S ******");
int k = 0;
while(k < s_list.size()){
System.out.println(s_list.get(k));
sortie.println(s_list.get(k));
k++; }
}
{
System.out.println("****** LISTE T ******");
sortie.println("****** LISTE T ******");
int k = 0;
while(k < t_list.size()){
System.out.println(t_list.get(k));
sortie.println(t_list.get(k));
k++; }
}
{
System.out.println("****** LISTE U ******");
sortie.println("****** LISTE U ******");
int k = 0;
while(k < u_list.size()){
System.out.println(u_list.get(k));
sortie.println(u_list.get(k));
k++; }
}
{
System.out.println("****** LISTE V ******");
sortie.println("****** LISTE V ******");
int k = 0;
while(k < v_list.size()){
System.out.println(v_list.get(k));
sortie.println(v_list.get(k));
k++; }
}
{
System.out.println("****** LISTE W ******");
sortie.println("****** LISTE W ******");
int k = 0;
while(k < w_list.size()){
System.out.println(w_list.get(k));
sortie.println(w_list.get(k));
k++; }
}
{
System.out.println("****** LISTE X ******");
sortie.println("****** LISTE X ******");
int k = 0;
while(k < x_list.size()){
System.out.println(x_list.get(k));
sortie.println(x_list.get(k));
k++; }
}
{
System.out.println("****** LISTE Y ******");
sortie.println("****** LISTE Y ******");
int k = 0;
while(k < y_list.size()){
System.out.println(y_list.get(k));
sortie.println(y_list.get(k));
k++; }
}
{
System.out.println("****** LISTE Z ******");
sortie.println("****** LISTE Z ******");
int k = 0;
while(k < z_list.size()){
System.out.println(z_list.get(k));
sortie.println(z_list.get(k));
k++; }
}
oulanos
Messages postés25Date d'inscriptionvendredi 14 avril 2006StatutMembreDernière intervention10 mai 2010 26 juin 2009 à 16:15
Bon finalement j'ai trouvé tout seul, en fait j'avais codé avec le genou l'ancien.. bon celui là ne doit pas être mieux pour un pro de Java mais au moins il marche à peu près, je met le code en espérant aider quelqu'un:
public void lancerListing(String chemin_a_lister)throws IOException{
String nomfich = "C:\\liste_lolo2.txt";
PrintWriter sortie = new PrintWriter (new FileWriter (nomfich));
File url_a_lister = new File(chemin_a_lister);
if(!url_a_lister.exists()){
System.out.println("Le fichier/répertoire '"+url_a_lister+"' n'existe pas");
}else if(url_a_lister.isFile()){
System.out.println("Le chemin '"+url_a_lister+"' correspond à un fichier et non à un répertoire");
}else if(url_a_lister.isDirectory()){
System.out.println("Le chemin '"+url_a_lister+"' correspond bien à un nom de répertoire, listing en cours....");
start_listing_repertoire(url_a_lister, sortie);
sortie.close();
} // fin du elseif est un répertoire
}//fin de la méthode lancerListing
// La méthode récupère en param l'url du chemin a lister, qui est un dossier
public void start_listing_repertoire(File repertoire_a_lister, PrintWriter sortie) {
// on créé une variable qui contient le listing du répertoire passé en param
File[] fichiers_dans_sous_repertoire = repertoire_a_lister.listFiles();
//initialisation de i pour être utilisé dans un while pour lister le répertoire
int i = 0;
//tant que i est inférieur au nombre max de fichiers dans le répertoire, on liste et on incrémente i
while(i < fichiers_dans_sous_repertoire.length){
if(fichiers_dans_sous_repertoire[i].isDirectory()){
// Le fichier est un répertoire, on le renvoi dans la même méthode pour le lister à son tour
System.out.println("c'est un repertoire "+fichiers_dans_sous_repertoire[i]);
sortie.println(/*"c'est un repertoire "+*/fichiers_dans_sous_repertoire[i]);
start_listing_repertoire(fichiers_dans_sous_repertoire[i], sortie);
}
if(fichiers_dans_sous_repertoire[i].isFile()){
//C'est que le fichier n'est pas un répertoire, on l'envoie dans la méthode pour fichiers
System.out.println("c'est un fichier "+fichiers_dans_sous_repertoire[i]);
sortie.println(/*"c'est un fichier "+*/fichiers_dans_sous_repertoire[i]);
// sortie.println("TOTO");
start_listing_fichiers(fichiers_dans_sous_repertoire[i]);
}
i++;
}
}
public void start_listing_fichiers(File repertoire_a_lister) {
}
public static void main(String[] args) {
FreddouListing listing = new FreddouListing();