IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

parcours arboresence : fichier ou dossier?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut parcours arboresence : fichier ou dossier?
    bonjour,
    je parcours une arborescence de fichiers et je mets le fichier ou le dossier courant dans une struct dirent, comment savoir si le dirent courant est un fichier ou un dossier ?

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Voir stat et la macro S_ISDIR ou S_ISREG
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    le dirent est généré par l'appel de la fonction readdir(DIR ). Dans cette structure, il y a : ino_t d_ino, off_t d_off, unsigned short d_reclen, char d_name[1]. Qu'est-ce que sont les d_ino,d_off et d_reclen ? car j'ai vu que les dossiers avaient un d_reclen = 16 et les fichiers txt = 28, y aurait-il un lien entre d-reclen et type de fichier ?

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Issu du fichier dirent.h
    `d_reclen' member that gives the size of the entire directory entry.
    Tu n'as pas le choix, il faut utiliser les fonctions et macros du fichier stat.h, c'est fait pour ça.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 228
    Par défaut
    j'essaie d'utiliser stat() mais j'ai qq prob, notamment pour me servir de S_ISREG et S_ISDIR. Je me positionne sur un fichier, je lui applique stat() avec en param d_name d'1 dirent et 1 stat. C'est là que je ne sais pas comment on se sert de S_ISREG par exemple.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par crischprolch
    j'essaie d'utiliser stat() mais j'ai qq prob, notamment pour me servir de S_ISREG et S_ISDIR. Je me positionne sur un fichier, je lui applique stat() avec en param d_name d'1 dirent et 1 stat. C'est là que je ne sais pas comment on se sert de S_ISREG par exemple.
    Tu dois passer le champs st_mode de la structure stat en argument de la macro.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    struct stat status;
    ...
    if (S_ISDIR (status.st_mode) ...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parcours des fichiers d'un dossier
    Par VB 2008 dans le forum VB.NET
    Réponses: 1
    Dernier message: 16/07/2008, 01h33
  2. [VBA-E] parcours de fichiers et de dossiers
    Par trach.sam dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/08/2006, 17h34
  3. [VBA-A]Parcours d'une arborescence dossiers et fichiers
    Par sidneyvba dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/03/2006, 16h58
  4. Fichiers ou dossier...
    Par Franck.H dans le forum C
    Réponses: 9
    Dernier message: 15/03/2004, 20h23
  5. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo