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

Java Discussion :

Récupérer des fichiers dans un dossier avec les expressions régulières


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut Récupérer des fichiers dans un dossier avec les expressions régulières
    Bonjour à tous,

    Voici mon problème.

    Je suis dans un dossier comportant par exemple plusieurs fichiers :

    fic_v1, fic_v2, fichier1, fichier2

    Mon but est de récupérer fic_v1 et fic_v2. Donc les fichiers commençant par fic_v et puis une suite de caractère.

    Je sais qu'une suite de caractère est de cette forme .* Mais je ne sais pas comment faire en java.

    Merci de votre aide.

    Leniouns

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Un pattern de ce genre : 'fic_v*' devrait marcher.

    C'est ce que tu cherchais ou bien alors le code pour utiliser ce pattern?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Le code pour utiliser ce pattern

    Merci de ton aide

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tout ce dont tu as besoin se trouve dans les classes java.io.File et java.lang.String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String ancienPrefixe = "fic_v";
    String nouveauPrefixe = "fichier";
    File dossier = new File("/mon/dossier");
    if(dossier.isDirectory()) {
        for(File fichier : dossier.listFiles()) {
            if(fichier.getName().startsWith(ancienPrefixe)) {
                String nouveauNom = fichier.getName().replaceFirst(ancienPrefixe, nouveauPrefixe);
                File fichierDest = new File("/mon/dossier/"+nouveauNom);
                fichier.renameTo(fichierDest);
             }
        }
    }
    Edit :
    Tu peux également utiliser matches(String regEx) à la place de startsWith(...)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Merci de ton aide.

    Mais je ne veux pas renommer des fichiers je veux seulement récupérer les fichiers qui commencent par fic_v. Car en fait après je veux récupérer leur noms.

    Merci en tout cas de ta participation

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Ah oui, j'avais lu trop vite.
    Le matches(...) avec le pattern donné par deathness, ou le startsWith(...) donc.

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tu peux également utiliser listFiles(FileFilter filter) et coder le FileFilter qui filtrera sur l'expression régulière.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    D'accord.

    Je vais essayer je reviens vers vous si j'ai des soucis.

    Merci encore

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    File f = .....
    File[] contenu = f.listFiles(new FilenameFilter(){
        public boolean 	accept(File dir, String name) {
          return name.startsWith("fic_v");
        }
      });

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Par défaut
    Voici la solution que j'ai utilisée


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String prefixe = "fic";
     
    File dossier = new File("C:\\...");
    if(dossier.isDirectory()) {
        for(File fichierVersion : dossier.listFiles()) {
             if(fichierVersion.getName().matches(prefixe + ".*")){
     
                 System.out.println(fichierVersion.getName());
     
             }
        }
    }
    Donc là ça m'affiche bien tous les fichiers qui commencent par "fic".
    Cepedant maintenant j'aimerais pouvoir récupérer le nom de ces fichiers mais sans l'extension.

    Merci à tous pour votre aide

  11. #11
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    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
     
    String prefixe = "fic";
     
    File dossier = new File("C:\\...");
     
    String nameWithoutExtension;
    if(dossier.isDirectory()) {
        for(File fichierVersion : dossier.listFiles()) {
             if(fichierVersion.getName().matches(prefixe + ".*")){
                 nameWithoutExtension = fichierVersion.getName().substring(0, fichierVersion.getName().lastIndexOf("."));
                 System.out.println(nameWithoutExtension );
     
             }
        }
    }
    Si tu es sur de l'existence d'une extension sur les fichiers, sinon tester la présence d'une extension.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/11/2008, 22h42
  2. Enregistrer des fichiers dans un dossier
    Par tomtom09 dans le forum VBA Word
    Réponses: 1
    Dernier message: 22/09/2008, 16h33
  3. enregistrer des fichiers dans un dossier
    Par Alexandra0907 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2008, 18h52
  4. [INNO] Installer des fichiers dans le dossier système
    Par Zl@b][roth dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 20/03/2008, 11h17

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