Bonjour à tous,

Voilà, j'avais une problèmatique très simple qui s'est révélé très compliqué. Je sais pas si j'étais vraiment pas en forme ce jour là, mais j'ai pondu un code super compliqué... du moins je pense qu'on peux faire plus simple.

Problème: Je souhaite avoir un tableau de File contenant tout les fichiers d'un repertoire de base, et d'une liste de répertoire. Dans la liste des repertoires les fichiers ajouter au tableau sont seulement les repertoires finissant pas "_sc".
Pas dur ..? Surement ! Je souhaiterais avoir votre adie..
Pour informations j'ai mis mon code "horrible" jai un peu honte mais bon.. C'est pour celà que je suis là d'un coté

Merci davance



La méthode ListerToutLesFichiers() : Prend en paramètre un tableau de String t contenant de le chemin de plusieurs repertoires. Le but est de retourner un tableau de File, contenant l'ensemble des fichiers de tout les repertoires se terminant par _sc. Je passe par un vector car je ne connais pas à l'avance le nombre de fichier que je vais avoir par avance.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
   private File[] ListerToutLesFichiers(String[] t) throws
IOException
   {
      // t = Tableau contenant une liste de chemins repertoires
 
      Vector ids = new Vector(1, 1);
 
      // scan tout les repertoires pour mettre dans le vector les repertoire _sc
      for (int i = 0; i < t.length; i++)
      {
         //Test le nom du repertoire se termine par "_sc"
         if (t[i].startsWith("_sc"))
         {
            ids.add(t[i]);
         }
      }
 
      Vector vectorFiles= new Vector();
      for (int i = 0; i < ids.size(); i++)
      {
         File[] ListFiles = getListFileInDirectory((String) ids.get(i));
         //Evite l erreur si il y a aucun fichier dans le repertoire 
         if (ListFiles != null)
         {
            //Met tout les fichiers dans le vector
            for (int j = 0; j < ListFiles.length; j++)
            {
             vectorFiles.add(ListFiles[j]);
            }
         }
      }
 
      //Convertie le vector en list de File
      File[] FileArray = new File[vectorFiles.size()];
      for (int i = 0; i < vectorFiles.size(); i++)
      {
         FileArray[i] = (File) vectorFiles.get(i);
      }
 
      return  templateList;
   }
Fonction Main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
     //Recupere la liste des fichiers du repertoire de base
      pathBase = getRepertoireDeBase();
      File[] fileArrayBase = listDirectories(pathBase);
 
        //Recupere la liste des fichiers du repertoire en plus
      File[] fileArrayEnPlus =  ListerToutLesFichiers(getRepertoireEnPlus());
 
      //Creer la liste finale contenant tout les fichiers de tous les repertoires finissant pas _sc de la taille des 2 listes
      File[] ListeFinal = new File[fileArrayBase .length + fileArrayEnPlus .length];
 
     // Copie les 2 listes dans la liste finale
      System.arraycopy(fileArrayBase , 0, ListeFinal ,  0, fileArrayBase .length);
      System.arraycopy(fileArrayEnPlus , 0,ListeFinal , fileArrayBase .length, fileArrayEnPlus .length);