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

avec Java Discussion :

isFile et wildcards ou regexp


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut isFile et wildcards ou regexp
    Bonjour,

    Je débute en java et j'ai créer une petite API pour me faciliter la vie au boulot, en effet je dois vérifier la présence de fichiers sur des serveurs.

    Toute l'API et les classes fonctionnent correctement, j'ai bien mon xml de parser, l'affichage dans mes jTextArea etc.

    Et je me posais une question, est-il possible de mettre un wildcards ou une regexp dans une recherche isFile?

    Je m'explique j'ai des fichiers que je recherche qui ont des noms identiques basés sur la date et l'expéditeur et seule l'extension change en fonction du fait que le fichier soit traité ou non.

    Par exemple il faudrait que je fasse un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            File nomdufichier = "totoAAAAMMJJ.*";
            File fichier = new File(nomdufichier);
            if (fichier.isFile())  return true;
            else return false;
    Mais je sais que le .* ne fonctionne pas, comment pourrais-je faire ça?

    Je vous remercie par avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Ce bout de code devrait t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            File repertoire = new File("/nom_repertoire");
            repertoire.listFiles(new FileFilter()
            {
     
                public boolean accept(File pathname)
                {
                    return pathname.isFile() && pathname.getName().matches("totoAAAAMMJJ\\.*");
                }
            });
    Elle te permet de lister tous les fichiers qui s'appellent "totoAAAAMMJJ.*" dans le répertoire "/nom_repertoire". L'expression régulière est à adapter en fonction de tes besoins.

    Romain.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je te remercie de ta réponse.

    Malheureusement le soucis est que je connais déjà la liste des fichiers que je veux rechercher (mais sans leur extension) et leurs différents "path" puisque sur des serveurs différents.

    Je ne peux pas lister le contenu des répertoires car ils sont plus que surchargé et cela prendrait trop de temps, c'est pourquoi je cherche un moyen d'attaquer directement le nom du fichier avec un wildcard et non le listing des répertoires.

    J'ai vu qu'avec une librairie apache WildcardsFileFilter on pouvait mettre des wildcards mais je ne comprends pas comment le coupler avec isFile.

    Du coup je continue de chercher ^^.

    PS : Marrant je m'appelle romain aussi.


    NB : Je précise que le nom de mes fichiers se compose de cette façon :

    //nomduserver//nomdurepertoire//nomdufichier.extension

    ce qui me complique la tâche car le nom du serveur et répertoire changent régulièrement et sont maintenus dans mon application par mon fichier xml contenant tous les fichier avec leur chemin respectif

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Bonjour,

    Citation Envoyé par ezaechiel Voir le message
    Je ne peux pas lister le contenu des répertoires car ils sont plus que surchargé et cela prendrait trop de temps, c'est pourquoi je cherche un moyen d'attaquer directement le nom du fichier avec un wildcard et non le listing des répertoires.
    C'est la même chose de toute façon. Tu croyais qu'il allait être résolu comment, le wildcard -_-° ?

    Citation Envoyé par ezaechiel Voir le message
    J'ai vu qu'avec une librairie apache WildcardsFileFilter on pouvait mettre des wildcards mais je ne comprends pas comment le coupler avec isFile.
    isFile() n'est pas une recherche. Les FileFilter s'utilisent en paramètre de listFiles()... Mais bon, ça fait exactement la même chose que le code qui t'a déjà été donné, tu n'y gagneras rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est la même chose de toute façon. Tu croyais qu'il allait être résolu comment, le wildcard -_-° ?
    Oui pas faux.



    Citation Envoyé par thelvin Voir le message
    isFile() n'est pas une recherche. Les FileFilter s'utilisent en paramètre de listFiles()... Mais bon, ça fait exactement la même chose que le code qui t'a déjà été donné, tu n'y gagneras rien.
    Mon but n'est pas de faire une recherche mais de vérifier l'existence d'un fichier qui peut avoir une extension différente en fonction de l'avancée de son traitement.

    Je vais repréciser un peu en gros j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    File nomdufichier = "\\NOMDUSERVEUR\\DOSSIER1\\DOSSIER2\\DOSSIER3\\....\\DOSSIERN\\totoAAAAMMJJ.*";
            File fichier = new File(nomdufichier);
            if (fichier.isFile())  return true;
            else return false;

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par ezaechiel Voir le message
    Mon but n'est pas de faire une recherche mais de vérifier l'existence d'un fichier qui peut avoir une extension différente en fonction de l'avancée de son traitement.
    Rechercher un fichier dont le nom commence d'une certaine façon et peut se finir de différentes façons, donc.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Finalement j'ai fait un truc de ce style :

    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
        public static boolean searchFile(String file) {
            File fichier = new File(file);
            String absolutePath = fichier.getAbsolutePath();
            String filePath;
            int exist = 0;
     
            filePath = absolutePath.substring(0,absolutePath.lastIndexOf(File.separator));
            File dir = new File(filePath);
            FileFilter fileFilter;
            fileFilter = new WildcardFileFilter(".*");
            File[] files = dir.listFiles(fileFilter);
            for (int i = 0; i < files.length; i++) {
                if (files[i].isFile())
                {
                    ++exist;
                };
            }
            if (exist > 0) return true;
            else return false;
        }//searchFile
    Il faut que je modifie le WildcardFileFilter mais ça semble fonctionner.

    Merci pour votre aide.

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. [langage] [RegExp] Détecter un chemin Windows
    Par GLDavid dans le forum Langage
    Réponses: 3
    Dernier message: 01/09/2004, 14h57
  3. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01
  4. [langage] [RegExp] Question d'expression régulière
    Par cloogy dans le forum Langage
    Réponses: 5
    Dernier message: 08/10/2003, 09h29
  5. regexp
    Par mathieu gérard dans le forum ASP
    Réponses: 4
    Dernier message: 02/10/2003, 18h05

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