Introduction
Dans ce laboratoire, nous allons créer un programme C pour lister tous les fichiers présents dans un répertoire en utilisant le fichier d'en-tête dirent.h.
Note: Vous devez créer le fichier
~/project/main.cvous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter à l'aide de gcc.
cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main
Inclure les fichiers d'en-tête
Nous devons inclure les fichiers d'en-tête d'entrée/sortie standard et de dirent en écrivant le code suivant au début du programme :
#include <stdio.h>
#include <dirent.h>
Définir la fonction principale
La fonction main() est le point d'entrée de notre programme. Notre programme commence à s'exécuter à partir d'ici. Nous déclarerons également le pointeur de répertoire d du type DIR et le pointeur d'entrée de répertoire dir du type struct dirent.
int main(void)
{
DIR *d;
struct dirent *dir;
/*Votre code ici*/
return 0;
}
Ouvrir le répertoire
Nous allons ouvrir le répertoire requis en utilisant la fonction opendir(). Ici, l'opérateur point (.) indique le répertoire courant.
d = opendir(".");
Lire le répertoire
Nous allons lire chaque entrée du répertoire en utilisant la fonction readdir(). Ici, nous vérifions que le pointeur de répertoire n'est pas NULL. Si ce n'est pas le cas, nous allons afficher tous les fichiers présents dans le répertoire.
if (d)
{
while ((dir = readdir(d))!= NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
Code complet
Voici le code complet du programme :
#include<stdio.h>
#include<dirent.h>
int main(void)
{
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d)
{
while ((dir = readdir(d))!= NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
Résumé
Dans ce laboratoire, nous avons appris à créer un programme C pour lister les noms de tous les fichiers dans un répertoire. Nous avons utilisé des fonctions du fichier d'en-tête dirent.h pour y parvenir. En utilisant ce programme, nous pouvons facilement récupérer les noms de tous les fichiers présents dans le répertoire spécifié.



