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 :

listing de fichiers avec une extension données depuis un répertoire


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut listing de fichiers avec une extension données depuis un répertoire
    Bonjour,

    j'ai cherché un peu sur le site, pour lister les fichiers d'un répertoires.
    J'ai trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct dirent *lecture;
    DIR *rep;
    rep = opendir("." );
    while ((lecture = readdir(rep)))
    	{		
           printf("%s\n", lecture->d_name);
        }
    closedir(rep);
    Maintenant, je voudrais ne lister que les fichiers qui ont une extension de type .pnm
    Comment faire ?
    Merci !

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int          check_extension(char *str)
    {
      int           i;
     
      for (i = 0; str[i] && str[i + 4]; ++i); 
      if (strncmp(str + i, ".pnm", 4);
         return (1);
      return (0); 
    }
    Ca devrait faire l'affaire. Tout ce que tu as à faire ensuite c'est d'appeler cette fonction avant chaque affichage de fichier et vérifier sa valeur de retour. 1 tu affiches 0 tu affiches pas...
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Le plus simple est de chercher le dernier '.' dans le nom avec la fonction standard strrchr() et de comparer ce qui la suit à "pnm" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int check_extension(char *str)
    {
      char *p = NULL;
      if (str != NULL) p = strrchr(str,'.');
      return p != NULL ? strcmp(p,".pnm") == 0 : 0 ; 
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/08/2010, 09h35
  2. Lister/supprimer des fichiers avec une extension précise
    Par guiguiomr dans le forum VBScript
    Réponses: 10
    Dernier message: 20/05/2008, 10h34
  3. Réponses: 6
    Dernier message: 30/01/2008, 20h46
  4. Réponses: 10
    Dernier message: 23/04/2007, 22h59
  5. Ouvrir fichier avec une extension dmp
    Par flo_opium dans le forum Oracle
    Réponses: 2
    Dernier message: 23/11/2006, 10h06

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