 |
|
 |
|
 |
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 oeuvre intellectuelle protégée par les droits d'auteurs. 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'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.
|