Ce code doit chercher dans le répertoire courant un fichier "C

Fermé
marwa - 13 nov. 2012 à 19:51
 marwa - 16 nov. 2012 à 14:26
Bonjour cher amis

voici un code je veux savoir s'il est correcte ou pas sinon SVP aidez moi pour ce code

ce code doit chercher dans le répertoire courant un fichier "C" en retournant son nom.

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <time.h>

int main (void)
{
DIR *rep = opendir (".c" );

if (rep != NULL)
{
struct dirent *lecture;

while ((lecture = readdir (rep)))
{
struct stat st;

stat (lecture->d_name, &st);
{
/* Modified time */
time_t t = st.st_mtime;
struct tm tm = *localtime (&t);
char s[32];
strftime (s, sizeof s, "%d/%m/%Y %H:%M:%S", &tm);

printf ("%-14s %s\n", lecture->d_name, s);
}
}
closedir (rep), rep = NULL;
}
return 0;
}

merci beaucoup mes ami(e)s
A voir également:

1 réponse

[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 089
Modifié par [Dal] le 16/11/2012 à 10:52
Salut marwa,

Tu dois passer un répertoire à opendir :

https://pubs.opengroup.org/onlinepubs/7908799/xsh/opendir.html

Pour le répertoire courant, tu dois passer un point. Vois l'exemple ici :

https://pubs.opengroup.org/onlinepubs/7908799/xsh/readdir.html

Ensuite, dans ta boucle, tu peux vérifier les extensions dans les noms de fichiers retournés par le membre de la structure lecture->d_name, par exemple en utilisant strrchr pour localiser le dernier point contenu dans le nom de fichier et en incrémentant le pointeur de un, et en comparant le résultat à une chaîne "C" et/ou "c".

Cela veut dire que tu dois aussi décider si ton programme est sensible à la casse, et si une extension "toto.c" sera trouvée de même que "toto.C".

Le stat que tu fais ne servira qu'à afficher, outre le nom, la date et l'heure de chaque fichier trouvé correspondant à l'extension recherchée (si c'est bien ce que tu dois faire). Si tu dois seulement afficher le nom, il n'est pas utile de l'utiliser... n'est-ce pas ?


Dal
1
merci
0