NEO ::: TEAM
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

NEO ::: TEAM

New Evolution Owner
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -14%
Smartphone Xiaomi Redmi Note 13 Pro – ...
Voir le deal
174.99 €

 

 Comment lister les fichiers d'un répertoire ?

Aller en bas 
AuteurMessage
hou$$am
Fondateur
Fondateur
hou$$am


Nombre de messages : 386
Localisation : Tlemcen-Algeria
Date d'inscription : 04/01/2007

Comment lister les fichiers d'un répertoire ? Empty
MessageSujet: Comment lister les fichiers d'un répertoire ?   Comment lister les fichiers d'un répertoire ? Icon_minitimeLun 15 Jan - 1:05

Pour lister les fichiers d'un répertoire, nous allons faire appel aux fonctions FindFirst, FindNext et FindClose ainsi qu'à la structure TSearchRec.

Code:
void TForm1::Search(AnsiString FilePath, TStringList * Extensions, TStrings * ListeFichiers)
{
  TSearchRec Infos_fichier;
  if (!FindFirst(FilePath+"*.*", faAnyFile, Infos_fichier))

  do
  {
    for (int i = 0 ; i < Extensions->Count ; i++)
    {
      if (ExtractFileExt(Infos_fichier.Name).LowerCase() == Extensions->Strings[i].LowerCase())
      {
        ListeFichiers->Add(ExpandFileName(Infos_fichier.Name));
      }
    }
  }
  while(!FindNext(Infos_fichier));

  FindClose(Infos_fichier);
}

Voici donc la méthode. Les paramètres qui doivent lui être passés sont respectivement FilePath, le répertoire dans lequel il faut faire la recherche, Extensions, la liste des extensions à recenser et enfin, ListeFichiers, un objet de type TStrings dans lequel on récupère la liste des fichiers.

La méthode crée une structure Infos_fichier qui permettra à la fonction FindFirst de stocker des informations sur les fichiers trouvés. Regardez l'aide sur FindFirst pour avoir plus de précisions sur celle-ci. Sachez simplement qu'elle attend en premier argument le répertoire de recherche, en second argument le type de fichiers à rechercher et enfin, la structure dans laquelle elle va stocker ses données. Cette fonction retourne 0 si elle trouve un fichier. Dans ce cas, on commence la boucle do...while. C'est la fonction FindNext qui prend le relais, FindFirst ne servant que pour la première fois.

Ensuite, on parcourt la liste des extensions et on regarde si l'extension du fichier trouvé SRec.Name correspond à une de la liste, dans ce cas, on l'ajoute.

Enfin, on libère la mémoire allouée dans la structure avec FindClose.

Cette méthode peut être utilisée de la manière suivante. Placez une ListBox sur votre fiche :

Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStringList *Extensions = new TStringList; // On construit la liste des extensions
  Extensions->Add(".cpp");
  Extensions->Add(".h");
  // Appel à notre méthode, avec pour liste des fichiers, les items de la ListBox.
  Search(ExtractFilePath(Application->ExeName), Extensions, ListBox1->Items);
  delete Extensions;
}
Revenir en haut Aller en bas
 
Comment lister les fichiers d'un répertoire ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment ouvrir plusieurs fichiers avec une OpenDialog

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
NEO ::: TEAM :: Informatique :: Les RADs :: Borland C++ 5,6-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser