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.
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
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; }
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);







Répondre avec citation



Partager