Fichiers

jogsx Messages postés 4 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 4 août 2004 - 3 sept. 2003 à 17:17
jogsx Messages postés 4 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 4 août 2004 - 27 févr. 2004 à 01:01
Bon,jour à tous,

Je suis débutant et j'ai qq soucis !!
Je souhaite lire le contenu d'un répertoire en filtrant selon une extension passée en paramètre.

Pour l'instant, j'utilise le code suivant pour lister le contenu total d'un répertoire, et je filtre après, mais ce serait plus "propre" de le faire avant.

File path = new File("c:\\transfic\\matisse\\.");
String[] list;
list = path.list();

Dois-je mentionner des paramètres supplémentaire ou utiliser un syntaxe différente ?

Merci d'avance
JoGsx

2 réponses

mimah Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 11 novembre 2003
4 sept. 2003 à 08:20
Salut,

Oui c'est sûr c'est pas très optimisé de filtrer ton tableau après.
En fait il y a 2 méthodes dans la classe File qui peuvent te servir suivant les besoins de ton application.

1ere méthode:
----------------
utilisation de la méthode list(FileNameFilter filter) qui rend un tableau de String filtré par le filter qui faut définir.

Exemple d'une classe filter

public class MyFileNameFilter implements FileNameFilter {
  /**
   * Méthode acceptant seulement les fichiers.jpg ou .gif
   */
  public boolean accept(File dir, String name) {
     if(name.endsWith(".jpg") || name.endsWith(".gif") {
        return true;
     }
     return false;
  }
}


Ensuite tu utilises ton filtre comme suit :

File path = new File("c:\\transfic\\matisse\\.");
String[] list = path.list(new MyFileNameFilter());


2eme méthode :
------------------
utilisation de la méthode listFiles(FileNameFilter filter) qui rend un tableau d'objets File filtré par la même classe MyFileNameFilter que pour la méthode 1.

Ensuite tu utilises comme suit :

File path = new File("c:\\transfic\\matisse\\.");
File[] list = path.listFiles(new MyFileNameFilter());


Voilà j'espère que ça va t'aider un peu.

Bon courage!
0
jogsx Messages postés 4 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 4 août 2004
27 févr. 2004 à 01:01
Merci encore pour ton aide qui m'avait été précieuse et désolé de ne pas t'avoir remercié plus tôt.

Gsx
0