Lister les fichiers dans un répertoire en C

Dans ce tutoriel nous allons découvrir comment lister tous les fichiers présents dans un répertoire ou un dossier dans lequel le fichier exécutable de ce programme est présent. Par exemple, si le fichier exécutable est présent dans « C:\Users\Pc », il répertoriera tous les fichiers présents dans « C:\Users\Pc ». Dans ce tutoriel nous allons utiliser le fichier d’en-tête dirent.h de la bibliothèque C qui contient des constructions facilitant la navigation dans les répertoires, comme décrit ci-dessous dans le programme.
 
 

Programme C pour lister tous les fichiers dans un répertoire
#include <dirent.h>
#include <stdio.h>
 
int main()
{
    struct dirent *dir;
    // opendir() renvoie un pointeur de type DIR. 
    DIR *d = opendir("."); 
    if (d)
    {
        while ((dir = readdir(d)) != NULL)
        {
            printf("%s\n", dir->d_name);
        }
        closedir(d);
    }
    return 0;
}

La sortie :
 

 
 

4 réflexions sur “Lister les fichiers dans un répertoire en C

  • novembre 10, 2020 à 7:42 pm
    Permalien

    Ma question: comment lister les fichiers dans un répertoire en C quand les noms du répertoire et des fichiers sont en caractères étendus (Japonais, Coréens, etc…)?

    Répondre
    • novembre 10, 2020 à 10:28 pm
      Permalien

      Avez-vous essayé le code avec des caractères étendus? Est-ce qu’il vous affiche des erreurs?

      Répondre
  • novembre 16, 2022 à 6:08 pm
    Permalien

    Bonsoir ma question est comment faire pour ne pas afficher les ficher caché par exemple un .txt.c

    Répondre
    • novembre 29, 2022 à 7:57 pm
      Permalien

      Essayer le code suivant:

      DIR* pd = opendir(xxxx);
      struct dirent *cur;
      while (cur = readdir(pd)) {
          if (cur->d_name[0] != '.') {  //ne pas afficher les fichiers cachés
              puts(cur->d_name);
          }
      }
      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *