Parser arborescence fichier
Hello,
Comment récupérer l'ensemble des fichiers d'un certain type (par exemple des fichiers dont l'extension est .xml) dans l'ensemble des sous répertoires d'un répertoire donné ?
Si vous avez une solution optimisé, car je suis soumis a une contrainte de perf ^^
Solution en cours mais moyenne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public static void listeRepertoire ( File dir ) {
System.out.println ( dir.getAbsolutePath());
if(dir.endsWith(".xml"))
process();
if ( dir.isDirectory ( ) ) {
File[] list = dir.listFiles();
for ( int i = 0; i < list.length; i++) {
// Appel récursif sur les sous-répertoires
listeRepertoire( list[i]);
if(i==5) break;
}
}
} |
Merci pour votre aide.
Re: Parser arborescence fichier
Citation:
Envoyé par rgomes
Hello,
Comment récupérer l'ensemble des fichiers d'un certain type (par exemple des fichiers dont l'extension est .xml) dans l'ensemble des sous répertoires d'un répertoire donné ?
Si vous avez une solution optimisé, car je suis soumis a une contrainte de perf ^^
Merci pour votre aide.
Solution en cours mais moyenne :
public static void listeRepertoire ( File dir ) {
System.out.println ( dir.getAbsolutePath());
if(dir.endsWith(".xml"))
process();
if ( dir.isDirectory ( ) ) {
File[] list = dir.listFiles();
for ( int i = 0; i < list.length; i++) {
// Appel récursif sur les sous-répertoires
listeRepertoire( list[i]);
if(i==5) break;
}
}
}
:tagcode:
Je ne sais pas si au niveau perf c'est mieux mais bon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public static void listeRepertoire(File dir, final String ...exts ) {
System.out.println ( dir.getAbsolutePath());
File[] files = dir.listFiles(new FileFilter() {
public boolean accept(File f) {
boolean res = f.isDirectory();
for(String s : exts) {
if(f.getName().endsWith(s)) {
res = true;
break;
}
}
return res;
}
});
for(File f : files) {
if(f.isDirectory()) {
listeRepertoire(f, exts);
}
else {
process();
}
}
} |