Identification repertoire fichier [Résolu]

Signaler
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007
-
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007
-
Bonjour tout le monde
Encore une fois j'appelle au secours pour une petite aide
Je fais un listing des éléments qui se trouve dans un répertoire. En fonction, si c'est un répertoire ou un fichier il doit réagir différemment.
Quelqu'un pourrait me dire comment on peut savoir si c'est un fichier ou un répertoire en C

Merci pour votre aide

 Laetitia

5 réponses

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
sinon, si tu as que le filename, alors utilises
GetFileAttributes en lui passant le nom du fichier

ShareVB
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Si tu utilise Win32 rien à ajouter à la solution citée la haut.
Sinon, si tu utilise le C ANSI une solution très facile consiste à utiliser la fonction fstat/stat

#include <sys/stat.h>
#include <sys/types.h>

int handle;
struct stat buffer;
if (handle open ("fileName", O_RDONLY)) -1) {
    return EXIT_FAILURE;
}

if (fstat (handle, &buffer) == -1) {
    return EXIT_FAILURE;
}

if (buffer.st_mode & S_IFDIR) {
    // répertoire
}
else if (
buffer.st_mode &
S_IFREG) {
    // fichier ordinaire
}
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,

si tu utilises FindFirstFile et FindNextFile, la structure WIN32_FIND_DATA renvoyée contient un membre dwFileAttributes qui est un bit field contenant les attributs du fichier et donc savoir si fichier ou dossier :

if ((w32fd.dwFilesAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
    //dossier
else
    //fichier

ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
16
salut,

et opendir/readdir/closedir pour lister les fichiers...

ShareVB
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007

merci pour votre aide
ca m'a bien aidé

 Laetitia