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

Windows Discussion :

listé mes noms de fichiers


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut listé mes noms de fichiers
    Coucou tout le monde,

    J'ai besoin de faire une application qui li le nom de fichier.

    Pour cela, j'ai vu qu'il existé la classe TList pour C++ Builder.
    Je programme sur visual C++

    Donc, j'ai aussi vu qu'il y avait :
    Dans la FAQ : (http://c.developpez.com/faq/vc/?page...etOpenFileName) proposant 2 versions :
    Une avec MFC utilisant la classe CFileFind et la méthode CFileFind::GetFileName (http://msdn2.microsoft.com/en-us/library/ttex48b8.aspx pour la documentation de MSDN)
    J'ai donc testé les exemples de la FAQ et aussi celle vu sur des forums et sur le site de MSDN.
    Je n'arrive pas à compiler, cela me dit qu'il n'arrive pas à convertir un const char en LPSTR

    J'ai donc testé l'exemple sans MFC :
    Pour la ligne :
    HANDLE h = FindFirstFile("c:\\*.*", &data);
    J'obtient pareil, une impossibilité de compiler avec ce message : impossible de convertir le parametre 1 de 'const char [7]' en LPCWSTR.

    Cela compile avec HANDLE h = FindFirstFile((LPCWSTR)"c:\\*.*", &data);
    mais bon, il ne trouve rien ensuite, car il ne cherche pas le bon parametre... :-/

    Bref, j'ai tenté pas mal de chose et j'm'y prend certainement très mal ^^ QQ'un aurait il la solution ?

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    3 possibilités:
    • Forcer en char: HANDLE h = FindFirstFileA("c:\\*.*", &data);
    • Forcer en WCHAR : HANDLE h = FindFirstFileW(L"c:\\*.*", &data);
    • Travailler en TCHAR: HANDLE h = FindFirstFile(TEXT("c:\\*.*"), &data);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci Médinoc pour ta réponse, mais cela m'affiche alors une autre erreur :
    'FindFirstFileA'*: impossible de convertir le paramètre 2 de 'WIN32_FIND_DATA *__w64 ' en 'LPWIN32_FIND_DATAA'

    J'vais aussi tout simplement t'afficher l'exemple présent dans la FAQ qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WIN32_FIND_DATA data;
    HANDLE h = FindFirstFile("c:\\*.*", &data);
    BOOL bMoreFiles =  (h != INVALID_HANDLE_VALUE);
    while (bMoreFiles)
    {
        if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        cout << data.cFileName << " : Repertoire" << endl;
        else
        cout << data.cFileName << " : Taille=" << (data.nFileSizeHigh * MAXDWORD) + data.nFileSizeLow << endl;
        bMoreFiles = FindNextFile(h, &data);
    }
    if (GetLastError() != ERROR_NO_MORE_FILES)
        cout << "erreur  = " << GetLastError() << endl;
    if (h!= INVALID_HANDLE_VALUE) FindClose(h);
    Arrive tu à compiler cette exemple ?

  4. #4
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    fait attention sous vc2005 tu es en unicode !

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Si tu veux forcer en char, tu dois utiliser la version A partout.
    Donc, les fonctions FindFirstFileA() et FindNextFileA() s'utilisent avec une structure WIN32_FIND_DATAA.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par hiko-seijuro
    fait attention sous vc2005 tu es en unicode !
    Ah !!! vi, j'utilise vc2005 : Dans ce cas, comment on fait ?!?

    (A vrai dire, j'm'était jamais posé la question sur vc2005...)

  7. #7
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Mauvais forum pour l'API win32.
    En portable tu as divers autres bibliothèques -- sous-forums relatifs à la biblio retenue.
    Perso j'aime bien boost.file_system.

Discussions similaires

  1. [WD-2007] Liste des noms de fichier d'un répertoire
    Par FabriZio777 dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/08/2009, 19h29
  2. Liste de nom de fichier
    Par gluc86 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/12/2007, 10h58
  3. Réponses: 7
    Dernier message: 06/08/2007, 14h34
  4. Réponses: 3
    Dernier message: 19/06/2007, 14h07
  5. fonction qui met en liste les noms des fichiers
    Par aliassaf dans le forum Général Python
    Réponses: 2
    Dernier message: 22/06/2006, 11h50

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