IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[FileFilter] filtrage de fichiers


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut [FileFilter] filtrage de fichiers
    Bonjour,

    j'aimerai avoir une aide concernant le filtrage de fichiers. J'ai écrit un filtre permettant de n'afficher que les fichiers contenant le terme "jour". Un exemple de nom complet est :
    Stats jour PHL CSD_061807_171503_sgacthr
    061807 donne la date correspondant au fichier.
    L'aide que j'aimerai avoir est la suivante.
    Lorsque je lance mon programme, une boite de dialogue apparait me demandant d'entrer une date.
    Je tape : 061807
    je souhaiterai que le fichier correspondant à cette date soit selectionner mais je ne sais pas trop comment m'y prendre.
    J'ai pensé crée un constructeur qui prendrait un String représentant la date en parametre mais ensuite, je ne sais pas
    comment faire pour utiliser la méthode accept car c'est elle qui permet de faire le filtre.
    Auriez-vous une solution à me soumettre.

    Merci

    Voici ce que j'ai codé :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    import java.io.File;  
    import javax.swing.*;
    import javax.swing.filechooser.*;
     
    public class FilterJour extends FileFilter{
    	//Description et extension acceptée par le filtre
    	private String description;
    	private String extension;
     
    	public FilterJour(){}
     
    	public FilterJour(String date){
     
    	}
     
    	//Constructeur à partir de la description et de l'extension acceptée
    	public FilterJour(String description, String extension){
    		if(description == null || extension ==null){
    			throw new NullPointerException("La description (ou extension) ne peut être null.");	
    		}
    		this.description = description;
    		this.extension = extension;
    	}
     
    	//Implémentation de FileFilter
    	public boolean accept(File file){
    		if(file.isDirectory()) { 
    			return true; 
    		} 
    		String nomFichier = file.getName().toLowerCase(); 
    		String regex = "(.)*(jour)(.)*";
    		return nomFichier.endsWith(extension) &&  nomFichier.matches(regex);
    	}
     
    	public String getDescription(){
    		return description;
    	}
     
    	public File[] getFiles(){	
    		File [] files = null;
    		FilterJour csv = new FilterJour("Fichiers CSV",".csv");
    		JFileChooser chooser = new JFileChooser(".");
    		chooser.addChoosableFileFilter(csv);
    		chooser.setMultiSelectionEnabled(true) ;
        int retour = chooser.showOpenDialog(null);
        if(retour == JFileChooser.APPROVE_OPTION) {
        	// des fichiers ont été choisis
        	files = chooser.getSelectedFiles();
        }
        return files;
    	}
    }

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ben dans ton constructeur tu stockes la String date que tu as recue dans un attribut et tu utilises cet attribut dans la méthode accept ..

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Merci.Et comme faire pour que le filtrage est lieu sans que la fenetre n'apparaisse?
    Une fois que la date sera indiquée, il ne pourra y avoir qu'un seul fichier correspond. J'aimerai ne pas avoir à cliquer sur ok pour valider le choix mais que le fichier soit directement séléctionné sans que la fenetre n'apparaisse.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Dans ce cas pourquoi utiliser javax.swing.filechooser.FileFilter au lieu d'utiliser directement java.io.FileFilter, FilenameFilter et les methodes de la classe File ??? Methodes qui n'ont absolument rien de graphique...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Citation Envoyé par bouye
    Dans ce cas pourquoi utiliser javax.swing.filechooser.FileFilter au lieu d'utiliser directement java.io.FileFilter, FilenameFilter et les methodes de la classe File ??? Methodes qui n'ont absolument rien de graphique...
    J'ai remplacé javax.swing.filechooser.FileFilter par java.io.Filter.
    Le reste du code est le même excepté la méthode getFiles qui est devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public File[] getFiles(){	
    		File [] files = null;
                   FilterJour csv = new FilterJour("Fichiers CSV",".csv");
                   File rep = new File("D:\\Documents and Settings\\pierre\\Desktop");
    	       files = rep.listFiles(csv); 
                   return files;
    	}
    Ensuite, j'utilise les chemins des fichiers récupérer pour les données en parametre d'une méthode qui affiche le contenue de ces fichiers.
    Le soucis, c'est que j'obtiens NullPointerException alors que lorsque je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FilterJour filter = new Filter();
    File [] files = filter.getFiles();
    for(File f : files)
    System.out.println(f.getAbsolutePath());
    Les chemins s'affichent mais en parametre d'une méthode, ça provoque l'exception.

    Il y a-t-il des choses à ajouter dans le nouveau code pour corriger cela?

    Merci

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Si tu regardais la trace de ton erreur, tu trouverais la ligne qui pose problème et tu pourrais trouver l'origine du problème.

    Sinon, le débuggueur d'Eclipse fait ça très bien également.

    Enfin, dans ton cas, je prends un pari sur: "la méthode getFiles() renvoie null"
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

Discussions similaires

  1. Filtrage des fichiers excel
    Par dv-2008 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 02/05/2013, 10h43
  2. [WS 2003] Export / Import Quota et Filtrage de fichiers (FSRM)
    Par zeclad01 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 09/11/2011, 08h26
  3. filtrage des fichiers lors d'une connection ftp
    Par amani123 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 22/05/2008, 12h49
  4. Filtrage de fichiers
    Par Harpoon dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/10/2007, 13h56
  5. Filtrage de fichiers
    Par money mark dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 22/03/2006, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo