Rechercher : dans
Par :

Lister un repertoire en c++

Dernière réponse le 8 nov 2007 à 12:11:43 Jerem, le 18 avr 2006 à 21:22:15 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « lister un repertoire en c++ » dans :
[Windows] Obtenir la liste des fichiers d'un dossier VoirLister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Apache - Les fichiers .htaccess VoirLes fichiers .htaccess sont des fichiers de configuration d'Apache, permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire...

1

mamiemando, le 20 avr 2006 à 12:39:40

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

Répondre à mamiemando

2

 salim, le 8 nov 2007 à 12:11:43
  • +1

#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);
}

}

Répondre à salim