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

Langage C++ Discussion :

explication sur WIN32_FIND_DATA


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Par défaut explication sur WIN32_FIND_DATA
    Bonjour.

    Avant toute chose, je précise que je code avec Visual C++ 2005 express.

    Pour les besoin d'un programme, je dois lister le contenu d'un dossier. Après recherches sur internet, j'ai cru comprendre que je devais utiliser FindFirstFile puis FindNextFile. Je suis allé sur le site de Microsoft

    FindNextFile

    pour le second paramètre il est précisé ceci:

    A pointer to the WIN32_FIND_DATA structure that receives information about the found file or subdirectory.
    donc je me rend ici:

    WIN32_FIND_DATA

    mais je ne comprends pas plus.

    Pourriez-vous m'éclairez SVP ?

    merci

  2. #2
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Salut,
    Comme indiqué dans la documentation, le second paramètre est un pointeur vers une structure qui va recevoir les informations sur le fichier.

    D'ailleurs il y a un exemple en bas de la documentation de FindFirstFile

    Le principe c'est d'instancier une structure de ce type et de passer l'adresse de l'instance à la fonction qui remplira ta structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WIN32_FIND_DATA FindFileData; // la variable qui sera remplie par la fonction
    HANDLE hFind = FindFirstFile("MonFichier.txt", &FindFileData);
    hFind te servira a poursuivre la recherche avec FindNextFile, et il ne faudra pas oublier de terminer la recherche par FindClose.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Par défaut
    merci de ta réponse

    d'après ce que tu m'as dit, j'ai essayé de faire un truc tout 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
     
    int main()
    {
     
    	WIN32_FIND_DATA FindFileData;
    	HANDLE hFind;
    	hFind = FindFirstFile(L"C:\\Users\\sylvain\\Desktop", &FindFileData);
       if (hFind == INVALID_HANDLE_VALUE) 
       {
          cout<<"FindFirstFile failed"+GetLastError()<<endl;
       } 
       else 
       {
          cout<<FindFileData.cFileName<<endl;
          FindClose(hFind);
       }
     
     
    }
    et là, j'ai une suite de caractère en guise de résultat:

    012FD04
    je pensais qu'en précisant cFileName, ça me donnerai le nom du premier fichier trouvé sur le bureau.

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Quand je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FindFirstFile(L"C:\\Users\\sylvain\\Desktop", ...
    cout<<"FindFirstFile failed"...
    j'ai l'impression que ton programme (et toi aussi) ne sait pas trop s'il est unicode ou pas (et je pense que c'est ton problème).

    Donc si tu est en Unicode, TOUTES tes chaines de caractères doivent être en Unicode et l'option de compilation Unicode doit être activée. En unicode, le flux de sortie, c'est st::wcout (et pas std::cout)

    Si tu n'est pas un Unicode, cette option doit être désactivée et toutes tes chaines de caractères doivent être "non unicode".

    Au fait, n'oublie pas d'activer aussi le niveau 4 pour les warning et erreurs générés par le compilateur, des fois, il y a des messages qui paraissent anodins mais qui cachent un bug.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Par défaut
    je crois que tu viens de soulever une problématique importante x)

    je vais réfléchir à çà, et je reviendrai vers toi (enfin, via le sujet) si ça bloque.

    en tout cas merci

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Par défaut
    je pense avoir trouvé la solution à mon problème, mais ça ne marche toujours pas. Et à ce moment là, je tombe sur ça:

    WIndows 7 problem
    This program doesn't work on Windows 7 machine, when trying to get information from a UNIX machine. Works well on Windows XP though.
    Or j'utilise Seven ...

    ça veut dire, clairement et simplement que je l'ai dans l'os ??

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

Discussions similaires

  1. [Multimédia] Explication sur stream audio
    Par champion dans le forum Développement
    Réponses: 1
    Dernier message: 20/01/2005, 12h14
  2. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  3. s.v.p :explication sur le ".h" et dll de l'opengl
    Par Asmod_D dans le forum OpenGL
    Réponses: 1
    Dernier message: 22/11/2004, 10h32
  4. Réponses: 28
    Dernier message: 18/08/2003, 11h54
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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