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 ThenBegin 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<>'..') ThenBegin 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;