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

MFC Discussion :

Problème d'utilisation de la fonction CFileFind::FindNextFile()


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Points : 20
    Points
    20
    Par défaut Problème d'utilisation de la fonction CFileFind::FindNextFile()
    Bonjour,

    J'utilise la fonction FindNextFile pour retrouver un fichier dans un répertoire.

    Le fichier recherché : test_FR.pdf.
    Les deux fichiers existant dans le répertoire : test_FR.pdf et testY_FR.pdf.

    Voici un code simplifié expliquant mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CString URL = _T("c:\\test???.pdf");
    CFileFind finder;
     
    if(!finder.FindFile(URL))
        return;
    finder.FindNextFile();
    URL = finder.GetFilePath();
    Les 3 "?" représentent des charactères blanc
    (The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?).).

    URL devrait me trouver le fichier test_FR.pdf mais il me retourne le fichier testY_FR.pdf ...

    Est-ce que la fonction présente un bug, ou est-ce que je fais quelque chose de mal???

    Merci de toute réponse.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ça m'étonne CFileFind s'appuie sur les apis win32 autant dire que si le résultat est erroné ,la même commande sous DOS aussi...
    Autre point : il faut tester le retour de FindNextFile avant de récupérer le chemin:
    le code devait être le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CString URL = _T("c:\\test???.pdf");
    CFileFind finder;
     
    if(!finder.FindFile(URL))
        return;
    CString ret;
    if(finder.FindNextFile())
      ret= finder.GetFilePath();
    tu peux aussi vérifier le fonctionnement sous dos en tapant : dir c:\test???.pdf.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Points : 20
    Points
    20
    Par défaut
    Merci Farscape pour ta réponse,

    Effectivement sous Dos j'ai le même résultat que sous mon programme.

    Ce qui est étonnant c'est que dans l'explorateur windows en faisant une recherche il ne trouve que le bon test...

    Je pensais naïvement qu'un "?" correspondait à un (et un seul) charactère....

    La solution serait alors de comparer la longueur des fichiers et tant qu'ils ne sont pas identique, prendre le suivant...

    Cela semble être une solution "pansement" qui peut règler le problème mais pas top...

    P.S : Merci pour ta correction de bonne programmation.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Points : 20
    Points
    20
    Par défaut
    Finalement j'ai opté pour l'idée mise plus haut.
    Je clos de sujet.
    (Merci Farscape de ta réponse)

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

Discussions similaires

  1. [XL-2003] Problème avec utilisation d'une fonction dans les formules
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2009, 10h43
  2. problème d'utilisation de la fonction RECHERCHEV
    Par merlubreizh dans le forum Excel
    Réponses: 3
    Dernier message: 27/02/2009, 08h35
  3. problème d'utilisation de la fonction cceps
    Par picard64 dans le forum Signal
    Réponses: 0
    Dernier message: 16/06/2008, 10h28
  4. Réponses: 4
    Dernier message: 29/05/2007, 10h03
  5. [DOS] probléme d'utilisation de la fonction CALL
    Par Benjamin_es dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 19/03/2007, 16h01

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