Lister un repertoire en c++

Jerem -  
 salim -
Bonsoir à tous ,

Je cherche à lister l'ensemble des fichiers d'un repertoire en c++ sous GCC , j'ai trouvé plein de codes sous windows mais pas sous linux.
merci de m'éclairer
jerem
Configuration: Linux Debian

2 réponses

  1. salim
     
    #include <dirent.h>
    #include <stdio.h>
    #include <string.h>

    int isdir(char *pp)
    {
    struct dirent *mydir;
    DIR *rep;
    int idir = -1;
    rep = opendir(pp);
    if (rep != NULL)
    {
    if ((mydir = readdir(rep)))
    {
    idir = 0;
    }
    closedir(rep);
    }

    return idir;
    }

    void doAnalyseDir(char *pdir, pdestdir)
    {
    struct dirent *mydir;
    DIR *rep;
    char srcfile[256];

    rep = opendir(pdir);
    if (rep != NULL)
    {
    while ((mydir = readdir(rep)))
    {
    if (strcmp(mydir->d_name, ".") != 0 && strcmp(mydir->d_name, "..") != 0)
    {
    sprintf(srcfile, "%s/%s", pdir, mydir->d_name);
    if(isdir(srcfile) == -1)
    {
    printf("%s\n", srcfile);
    }
    else
    {
    doAnalyseDir(srcfile);
    }
    }
    }

    closedir(rep);
    }

    }
    5
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    A priori il faut faire appel à une commande bash (ls en l'occurence) par exemple à l'aide de la commande execvp(). Je te suggère dans ton code de mettre un truc du genre :
    #ifdef LINUX
    //La section de code spécifique linux
    #else
    //La section de code spécifique windows
    #endif
    

    Et de compiler ton code sous linux avec :
    g++ -DLINUX -W -Wall plop.c

    Bonne chance
    0