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++Builder Discussion :

Comment récupérer les sous répertoires d'un répertoire [Sources]


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut Comment récupérer les sous répertoires d'un répertoire
    Bonjour,
    J'ai regardé la FAQ et autres... mais je n'arrive pas à récupérer le nom des sous répertoires d'un répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     TSearchRec pSR;
     int  trouve = FindFirst(dir+"\\*.*", faDirectory	, pSR);
     while  (trouve == 0)
    {
          DirName  = pSR.Name;
          trouve = FindNext(pSR);
    }
    Je récupère "." dans asDirName alors que je voudrais récupérer le nom du répertoire !!!

    merci

  2. #2
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Personnellement, j'ai fait ceci et cela fonctionne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    void FindDirectory(AnsiString FilePath, TStrings * ListeDossier)
    {
     TSearchRec Infos_dossier; //information sur la recherche
     if (!FindFirst(FilePath + "\\*.*", faDirectory, Infos_dossier))//recheche du premier fichier du dossier
     
     do //faire
     {
      if (Infos_dossier.Attr == faDirectory)//dossier ok
      {
       if ((Infos_dossier.Name != ".") && (Infos_dossier.Name != ".."))
            ListeDossier->Add(Infos_dossier.Name);//ajout nom dossier trouvé
      }
     }
     while(!FindNext(Infos_dossier));//tant que fichier trouvé
     
     FindClose(Infos_dossier);//fin recherche
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Salut,

    Personnellement, j'utilise une routine réutilisable dans laquelle tu spécifies l'extention que tu recherches et un "bool" s'il faut prendre en comte les sous-dossiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    //------------------------------------------------------------------------------
    // Liste les fichiers d'extension spécifiée, dans le répertoire indiqué,
    // et dans tous ses sous-répertoires si SousRep=true
    //------------------------------------------------------------------------------
     
    ListerFichiers(TStringList *liste,AnsiString NomRep,AnsiString extension,bool SousRep)
    {
      AnsiString temp;
      TSearchRec Rec;
      int trouve;
     
      if (NomRep.SubString(NomRep.Length(),1) !="\\") NomRep+="\\";
      trouve = FindFirst(NomRep+"*.*", faAnyFile, Rec);
      while (trouve == 0)
      {
        temp = NomRep + Rec.Name;
        if (ExtractFileExt(temp).LowerCase() == extension.LowerCase())
           {
            liste->Add(temp);
           }
     
        if ((Rec.Attr && faDirectory >0) && (Rec.Name[1] != '.') && (SousRep == true))
          ListerFichiers(liste,NomRep+Rec.Name,extension,true);
        trouve = FindNext(Rec);
      }
      FindClose(Rec);
    }
    Note du modérateur : le code vient de là http://c.developpez.com/sources/bcb/...ndfileswithext

    A+,

    Bouillou

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

Discussions similaires

  1. Comment récupérer les sous éléments d'un élément
    Par Holyve974 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 12/12/2012, 15h49
  2. Réponses: 2
    Dernier message: 01/04/2009, 13h54
  3. Réponses: 5
    Dernier message: 25/06/2007, 23h25
  4. Réponses: 7
    Dernier message: 26/05/2007, 12h43
  5. Réponses: 11
    Dernier message: 19/06/2006, 13h51

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