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

Administration système Discussion :

[2.6.1*][C] manipulation fichier et repertoire


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut [2.6.1*][C] manipulation fichier et repertoire
    Bonjour,

    Je cherche un moyen de parcourir une arborescence (repertoire, liens et fichiers). Il me faut que ce soit POSIX donc je suis parti sur opendir et readdir. J'ai bien les noms (champs d_name) mais d'aprés le man si les fonction sont POSIX la structure dirent ne l'est pas entierement. Tous les champs (d_name exceptés) sont sans garanti. Ma question : Une fois que j'ai recupéré un nom comment puis-je faire pour savoir si c'est un rep ou un file ?

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    regarde le man 3 readdir, celle-ci est POSIX ....

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    Effectivement readdir est posix comme je l'ai ecrit dans mon post. Et d'ailleurs grace a cette fonction j'ai bien le nom des "elements" presents dans les repertoires, mais je n'ai que les noms de garanti.

    Je viens juste de trouver ce qui me manque : stat.

    en fait en associant readdir, stat et les macro S_ISDIR/S_ISREG j'arrive à mon but. Voici un example de code au cas ou ca pourrait aider qqun.

    int main(int argc, char **argv)
    {
    DIR *CurrentDir = NULL;

    CurrentDir = opendir(argv[1]);
    if(CurrentDir != NULL)
    {
    struct dirent *Entrie = NULL;

    do
    {
    Entrie = readdir(CurrentDir);
    if(Entrie != NULL)
    {
    struct stat fileAttr;
    char *FullName;

    FullName = malloc(strlen(argv[1]) + strlen(Entrie->d_name) + 5);
    sprintf(FullName, "%s/%s", argv[1], Entrie->d_name);
    stat(FullName, &fileAttr);
    printf("-> %s (%s)", Entrie->d_name, FullName);
    printf(" directory = %s file = %s \n", (S_ISDIR(fileAttr.st_mode)) ? "yes" : "no", (S_ISREG(fileAttr.st_mode)) ? "yes" : "no");
    free(FullName);
    }
    }while(Entrie != NULL);
    }
    else
    printf("Ca ne marche pas !!!\n");

    return(0);
    }

    Merci

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

Discussions similaires

  1. manipulation de fichier et repertoire dans le serveur
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/11/2009, 20h02
  2. Manipulation fichier excel : quel langage ?
    Par HaTnuX dans le forum Windows
    Réponses: 7
    Dernier message: 14/04/2006, 19h34
  3. manipulation fichier avec Mysql
    Par poulacou dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/03/2006, 09h50
  4. Manipulation Fichiers Audio
    Par black is beautiful dans le forum Audio
    Réponses: 5
    Dernier message: 11/12/2005, 22h21
  5. Réponses: 3
    Dernier message: 28/09/2005, 08h39

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