Bonjour à tous...
J'ai un soucis avec une fonction récurcive... Je m'en sert pour trouver la taille des dossiers...
Régulièrement, je fais appel à elle et des fois, elle n'a pas le temps de se terminer, ce qui me produit un bug bien vilain ou un chargement vraiment long... J'aimerai donc savoir s'il existe un moyen de la stopper n'importe quand...
Le code :
Merci.
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 tform1.taille(dos: string):real; var sr:tsearchrec; r:integer; s:real; begin dos:=includetrailingbackslash(dos); s:=0; r:=findfirst((dos+'*.*'),faanyfile,sr); while (r=0) or stop do begin application.processmessages; if((sr.attr and fadirectory)<>0) and not stop then begin if sr.name<>'' then if (sr.name<>'.')and(sr.name<>'..') and directoryexists(dos+sr.name) then s:=s+taille(dos+sr.name,false); end else S:=S+SR.FindData.nFileSizeLow; r:=findnext(sr); end; sysutils.findclose(sr); result:=s; end;
DeeTOX.
Partager