 |
|
 |
|
 |
42 - FINDFIRST, FINDNEXT ET FINDCLOSE EN RECURSIF
|
|
|
|
PRÉSENTATION :
Utiliser FindFirst en récursif pour scruter les sous-répertoires
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 ni 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.