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

AWT/Swing Java Discussion :

JFileChooser sur un nombre de fichier de meme type


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut JFileChooser sur un nombre de fichier de meme type
    bonjour,

    J'utilise un JFileChooser pour ouvrir mes fichiers de log mais j'aimerais que l'user ne puisse voir que les fichiers remontant a 1 semaine maximum.

    Ma fonction pour recuperer mes noms de fichiers correspondants marche bien.


    Par contre je ne trouve pas de possibilité de mettre en parametre dans le filtre du JFileChooser prendre mon fichier sans faire un filtre par jour.
    ex: 20061102.log -> 1 filtre
    20061101.log -> 1 filtre

    (je ne veux pas voir tous les fichiers log)

    merci de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    bonjour,

    tu devrais trouver ta solution dans FileFilter

  3. #3
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    ok merci, je vais voir en profondeur.

  4. #4
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    Ca marche pas totalement.

    En fait ca me filtre les .log ce que j'avais deja mais je ne veux que accepter certain et donc j'en ai trop...

    Voici ce que je fait si quelqu'un peut m'aider

    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
     
          JFileChooser fc = new JFileChooser(savePath); 
          fc.setAcceptAllFileFilterUsed(false);
          FilterSimple log = new FilterSimple("Log file","log"); //classe de gestion filtre
     
     
    //pour connaitre le nom des fichiers des 7 derniers jours
        for(int i=0;i<=7;i++)
            {
                Calendar date = Calendar.getInstance();
            date.set(java.util.Calendar.DATE,-i);
            String day=+date.get(Calendar.YEAR)+""+(date.get(Calendar.MONTH)+1)+"";
             if(date.get(Calendar.DAY_OF_MONTH)<10)
             {day+="0";
                }
             day+=date.get(Calendar.DAY_OF_MONTH)+".log";
            System.out.println(day);
     
           File f=new File(day);
           log.accept(f);
    }
     
     
     fc.addChoosableFileFilter(log);
    le code de filtre simple

    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
     
     
    import java.io.File; 
    import javax.swing.filechooser.*;
     
    public class FilterSimple extends FileFilter{
       //Description et extension acceptée par le filtre
       private String description;
       private String extension;
       //Constructeur à partir de la description et de l'extension acceptée
     
       public FilterSimple(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(); 
          return nomFichier.endsWith(extension);
       }
          public String getDescription(){
          return description;
       }
    }
    merci

  5. #5
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Citation Envoyé par jolatouf
    Ca marche pas totalement.

    En fait ca me filtre les .log ce que j'avais deja mais je ne veux que accepter certain et donc j'en ai trop...
    ben alors il faut filtrer plus

    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
    //Implémentation de FileFilter
    public boolean accept(File file){
        File file = new File();
        //on autorisie l'affichage des dossiers
        if(file.isDirectory()) { 
        	return true; 
        } 
        String nomFichier = file.getName().toLowerCase();
        //le fichier doit finir par ".log"
        if(!nomFichier.endsWith(extension)) {
            return false;
        }
        String date = nomFichier.substring(0,nomFichier.indexOf(".log"));
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMdd");
        java.util.Date dateFichier = sdf.parse(sdf);
     
        java.util.Calendar septJours = java.util.Calendar.getInstance();
        septJours.set(java.util.Calendar.DATE,-7);
        //le fichier doit avoir moins de 7 jours
        return septJours.getTime().before(dateFichier);
    }
    ou quelque chose comme cela

  6. #6
    Membre confirmé
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Par défaut
    Oui mais je ne comprend pas comment enmpecher les autres fichiers.

    c'est a dire que si je fait un filtre .log

    dans mon dossier j'ai peut etre des fichiers dattant d'il y a 1 mois que je ne veux pas voir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2009, 13h57
  2. stocker le nombre de fichier de chaque type dans une table de hach
    Par niklos0 dans le forum Programmation et administration système
    Réponses: 7
    Dernier message: 24/09/2008, 15h34
  3. Réponses: 2
    Dernier message: 13/11/2007, 10h32
  4. Réponses: 2
    Dernier message: 24/04/2007, 08h03

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