Bonjour à tous,
J'ai un soucis avec la création d'une fonction qui s'occupe de rechercher :
- Si un dossier est vide en application(s) (de type ".exe") et en dossier(s), dans ce cas elle renverrait True.
- Si un dossier n'est pas vide en application(s) elle renverrait False (on ne tien alors pas compte des dossiers).
- Si, enfin un dossier est vide en application(s) mais pas en dossier(s), elle effectuerait les mêmes vérifications sur le dossier trouvé jusqu'à trouvé un .exe, ou, si aucun .exe n'est trouvé elle renverrait False.
Voilà ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function GoodExt(fic: string):boolean; //True si fic -> ".exe" False sinonLa fonction me renvoie bien False si elle a trouvé des ".exe" dans le dossier passé en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Function DossierEstVide(Dossier : string):boolean; var searchResult : TSearchRec; begin Result := True; //on enleve le '\' de la fin du dossier if Dossier[length(Dossier)]='\' then Dossier:=copy(Dossier,1,length(Dossier)-1); //on commence la recherche if FindFirst(Dossier+'\'+'*.*', faAnyFile-faHidden, searchResult) = 0 then begin repeat //on ignore '.' et '..' if (SearchResult.Name<>'.') and (SearchResult.Name<>'..') then begin //si le fichier trouvé à une bonne extension if ((SearchResult.Attr and faDirectory)=0) and GoodExt(searchresult.Name) then begin Result := False; end else if ((searchResult.Attr and faDirectory)<>0) then begin result := DossierEstVide(Dossier+'\'+searchresult.Name); end; end; until FindNext(searchResult) <> 0; FindClose(searchResult); end; end;
Par contre, elle me renvoie True même si des ".exe" ont été trouvés dans des sous dossiers du dossier passé en paramètre alors qu'elle devrait me renvoyer False.
Ca fait un petit moment que je suis dessus, désemparé, je fais appel à vos connaissances.
Merci d'avance.
=)
Partager