Parcourir tous les fichiers d'un rep et de ses sous-rep, en gérant la

Parcourir tous les fichiers d'un rep et de ses sous-rep, en gérant la - Java - Programmation

Marsh Posté le 19-12-2004 à 13:27:39    

alors comme le dit l'entête j'aimerai pouvoir itérer sur tous les fichiers d'un repertoire et de ses sous-repertoire
 
Mais pouvoir gérer la profondeur des fichiers que je liste :  
 
si c dans le xeme sous repertoire je ne veux pas le lister.
 
je n'arrive pas a réinitialiser ma variable j dans le programme récursif suivant :  
 
 

Code :
  1. /**
  2. * @author Olivier Glorieux
  3. *
  4. * Cette méthode permet de parcourir tous les fichiers contenus dans
  5. * un repertoire entré et ses sous-repertoires. On veut s'arrêter au  
  6. * à un seuil de profondeur entré : k l'indice de profondeur sera j
  7. */
  8. public static void itererRepertoire(String repertoire, int j, int k) {
  9.  File dir = new File(repertoire);
  10.  System.out.println(repertoire) ;
  11.  System.out.println("j : " + j) ;
  12.  //Once you have the appropriate path, you can iterate through its contents:
  13.  //List directory
  14.  // si le repertoire courant est bien un repertoire
  15.  if(dir.isDirectory()){
  16.          String s[] = dir.list();
  17.          for (int i=0; i<s.length; i++){
  18.            
  19.              File dirTemp = new File(repertoire + s[i] + "\\" );
  20.              // si le terme de la liste est lui-même un répertoire             
  21.              if(dirTemp.isDirectory() && j<k){
  22.               j++ ;
  23.               itererRepertoire(repertoire + s[i] + "\\", j, k);
  24.              }
  25.              // si le terme de la liste est un fichier
  26.              if(!dirTemp.isDirectory()){
  27.               System.out.println("fichier : " + s[i]);
  28.              }
  29.   }
  30.  }
  31. }
  32. }


 
déjà avez vous mieux comme code?
 
merci,
 
Olivier

Reply

Marsh Posté le 19-12-2004 à 13:27:39   

Reply

Marsh Posté le 19-12-2004 à 14:05:51    

Code :
  1. itererRepertoire(repertoire + s[i] + "\\", j-1, k);


?

Reply

Marsh Posté le 19-12-2004 à 14:25:22    

Code :
  1. /**  
  2. * @author Olivier Glorieux  
  3. *  
  4. * Cette méthode permet de parcourir tous les fichiers contenus dans  
  5. * un repertoire entré et ses sous-repertoires. On veut s'arrêter au   
  6. * à un seuil de profondeur entré k  
  7. */
  8.     public static void itererRepertoire(String repertoire, int j) {
  9.        
  10.         File dir = new File(repertoire);
  11.         System.out.println(repertoire) ;
  12.         System.out.println("j : " + j) ;
  13.         //Once you have the appropriate path, you can iterate through its contents:  
  14.         //List directory  
  15.         // si le repertoire courant est bien un repertoire  
  16.         if(dir.isDirectory()){
  17.                String s[] = dir.list();
  18.                for (int i=0; i<s.length; i++){
  19.                
  20.                 File dirTemp = new File(repertoire + s[i] + "\\" );
  21.                 // si le terme de la liste est lui-même un répertoire                 
  22.                 if(dirTemp.isDirectory() && j > 0){
  23.                     itererRepertoire(repertoire + s[i] + "\\", j-1);
  24.                 }
  25.                 // si le terme de la liste est un fichier  
  26.                 if(!dirTemp.isDirectory()){
  27.                     System.out.println("fichier : " + s[i]);
  28.                 }
  29.             }
  30.         }       
  31.     }


J'ai pas testé !!

Reply

Marsh Posté le 19-12-2004 à 14:41:40    

Code :
  1. public static void itererRepertoire(File dir, int depth, int maxDepth) {         
  2.         if (depth> maxDepth) {
  3.             return;
  4.         }
  5.         if (dir.isDirectory()){
  6.            File[] subdirs = dir.listFiles();
  7.            for (int i=0; i<subdirs.length; i++){
  8.               File subDir = subDirs[i];
  9.               itererRepertoire(subDir, depth+1, maxDepth);
  10.            }
  11.         } else if (dir.isFile()) {
  12.           System.out.println("fichier : " + subDir[i]);
  13.         }       
  14.     }


Message édité par benou le 19-12-2004 à 23:07:48

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 19-12-2004 à 15:11:26    

merci it works
 
j'ai compris le principe now
 
a+

Reply

Marsh Posté le 19-12-2004 à 16:46:57    

depth, pas deep [:aloy]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 19-12-2004 à 18:23:44    


bha ouais [:le kneu]
je suis con :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 19-12-2004 à 19:22:44    

Pis quitte à le faire en anglais, c'est maxDepth et pas depthMax ;)

Reply

Marsh Posté le 19-12-2004 à 23:07:34    

Glod 2 a écrit :

Pis quitte à le faire en anglais, c'est maxDepth et pas depthMax ;)


 [:benou]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed