Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
42 - FINDFIRST, FINDNEXT ET FINDCLOSE EN RECURSIF

PRÉSENTATION : Utiliser FindFirst en récursif pour scruter les sous-répertoires
ZIP : Téléchargez le zip APERÇUS :

NOTES : Cette exemple montre l'utilisation des procédures FindFirst, FindNext et Find close de manière recursive pour compter les fichiers d'un répertoire.

CODE :
// Procédure pour compter les fichiers
Function CompteFichiers(Chemin:String):Integer;
Var S:TSearchRec;
Begin
  Chemin:=IncludeTrailingPathDelimiter(Chemin);
  Form1.Label2.Caption:=Chemin;
  Form1.Label2.Refresh;

  Result:=0;
  // Recherche de la première entrée du répertoire
  If FindFirst(Chemin+'*.*',faAnyFile,S)=0
  Then Begin
    Repeat
      // Il faut absolument dans le cas d'une procédure récursive ignorer
      // les . et .. qui sont toujours placés en début de répertoire
      // Sinon la procédure va boucler sur elle-même.
      If (S.Name<>'.')And(s.Name<>'..')
      Then Begin
        If (S.Attr And faDirectory)<>0
          // Dans le cas d'un sous-repertoire on appelle la même procédure
          Then Result:=Result+CompteFichiers(Chemin+S.FindData.cFileName)
          // Sinon on compte simplement le fichier
          Else Inc(Result);
      End;
    // Recherche du suivant
    Until FindNext(S)<>0;
    FindClose(S);
  End;
End;

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -