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

C++ Discussion :

Lister automatiquement les fichiers d'un repertoire : problème de portabilité?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Lister automatiquement les fichiers d'un repertoire : problème de portabilité?
    Bonjour à tous,

    Je cherche à récupérer la liste de tous les fichiers présents dans un répertoire, en C++. De ce que j'ai lû jusqu'à présent, le code diffère selon l'environnement :

    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
    21
    // WIN32
    #include <stdio.h>
    #include <windows.h>
     
    int main(void)
    {
        WIN32_FIND_DATA File;
        HANDLE hSearch;
     
        hSearch = FindFirstFile("*.*", &File);
        if (hSearch != INVALID_HANDLE_VALUE)
        {
            do {
                printf("%s\n", File.cFileName);
            } while (FindNextFile(hSearch, &File));
     
            FindClose(hSearch);
        }
     
        return 0;
    }
    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
    21
    22
    23
     
    //POSIX
    #include <stdio.h>
    #include <dirent.h>
     
    int main(void)
    {
        DIR * rep = opendir(".");
     
        if (rep != NULL)
        {
            struct dirent * ent;
     
            while ((ent = readdir(rep)) != NULL)
            {
                printf("%s\n", ent->d_name);
            }
     
            closedir(rep);
        }
     
        return 0;
    }
    J'aimerais donc savoir comment faire pour intégrer ces deux portions de code à mon application et faire en sorte de détecter l'environnement pour exécuter le bon code? J'ai pensé à des macros, mais je n'en ai encore jamais utilisé, donc si quelqu'un a un exemple sur la façon de faire?...

    Ou, encore mieux, un code portable qui m'évite d'avoir à détecter l'environnement?

    Merci d'avance!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 069
    Points : 12 113
    Points
    12 113
    Par défaut
    Le second code est POSIX et ne devrait poser aucun problème de compilation et d'exécution sur plateforme Win32.

    Voici une implémentation Win32 de ces primitives POSIX.
    http://www.two-sdg.demon.co.uk/curbr...nt/dirent.html

  3. #3
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    boost.Filesystem est ton ami !

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Le second code est POSIX et ne devrait poser aucun problème de compilation et d'exécution sur plateforme Win32.

    Voici une implémentation Win32 de ces primitives POSIX.
    http://www.two-sdg.demon.co.uk/curbr...nt/dirent.html
    Testé et approuvé!
    La prochaine fois je testerai avant de demander

    Merci beaucoup

Discussions similaires

  1. Lister uniquement les fichiers d'un répertoire sous shell
    Par s-ehtp dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 03/10/2017, 10h29
  2. lister les fichiers d'un repertoire par date
    Par ra77 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 03h02
  3. lister les fichiers d'un repertoire
    Par bmw13fr dans le forum C++
    Réponses: 2
    Dernier message: 14/04/2006, 11h26
  4. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22

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