Listage de fichiers en c

lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 - 11 janv. 2009 à 19:06
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 12 janv. 2009 à 11:47
Bonjour à tous, je suis en train de créer un mini jeu en sdl avec la création d'une sauvegarde dans un répertoire nommé "svg". Le problème vient lorsque je veux lister les fichiers de ce répertoire : il me fait bien la liste des fichiers, mais il m'ajoute également les récursifs "." et ".." et c'est ce que je ne veux pas faire...

Voici une partie du code c :
     struct dirent *lecture;
     DIR *rep;
     rep = opendir("svg/" );
     while ((lecture = readdir(rep)))
     {
               printf("%s\n", lecture->d_name);
     }
     closedir(rep);

J'ai essayé de mettre la condition if(lecture->d_name!="." && lecture->d_name!="..") mais ça ne marche pas.

Si vous avez la solution, je suis preneur.

Merci d'avance.

Greg.

3 réponses

Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
12 janv. 2009 à 00:03
Normal que ca ne marche pas t'as comparaison de caractères !

En c pour comparer 2 "String" , il faut passer par strcmp (librairie string.h)

<tt><tt>int strcmp ( const char * str1, const char * str2 );

//test si lecture->d_name = ".." ...
donc pour comparer tu fais if(strcmp(lecture->d_name,="..")==0) ...

</tt></tt>
0
lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 3
12 janv. 2009 à 10:32
Ok. Merci d'avoir répondu.

J'ai essayé strcmp, mais en fait, il ne me compare pas lecture->d_name et ".." .

La compilation se passe nickel, mais ça plante à l'exécution à ce niveau là.

Je pense qu'il faut peut-être convertir lecture->d_name en chaîne de caractères car pour lui c'est un nom de fichier.

L'erreur vient peut-être de là...
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
12 janv. 2009 à 11:47
Hello,
Tu peux regarder les API FindFirstFile(), FindNextFile(),....

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous