MoveX
Messages postés230Date d'inscriptionvendredi 9 mai 2003StatutMembreDernière intervention16 juillet 2005
-
21 janv. 2004 à 15:24
MoveX
Messages postés230Date d'inscriptionvendredi 9 mai 2003StatutMembreDernière intervention16 juillet 2005
-
23 janv. 2004 à 18:35
procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
var
Info: TSearchRec;
Nombre: Integer;
begin
nombre:= 0;
if FindFirst(ShellTreeView1.Path, faAnyFile, Info)= 0
then
begin
Nombre:= Nombre+1;
while FindNext(Info)= 0
do Nombre:= Nombre+1;
FindClose(Info);
end;
ShowMessage(inttostr(nombre));
end;
vous l aurez sans doute compris, je veux que lorsque je change de dossier, ce code me renvoie le nombre de fichiers presents dans le nouveau dossier selectionne. avec ce code, il me retourne toujours 1 meme si il n y a aucun fichier...
je pense que soit je me plante au niveau du findfirst soit cest pour le comptage...
si quelqu un voit mon erreur... il sait quoi faire !
A voir également:
Compter le nombre de fichier dans un dossier python
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 21 janv. 2004 à 20:32
procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
var Nbfiles,
Nbdir : Longint;
TotSize : Int64;
fd : WIN32_FIND_DATA;
sh : Thandle;
rep : String;
begin
rep:=ShellTreeView1.Path+'\*.*';
sh:=findfirstfile(pchar(rep),fd);
nbdir:=0;
nbfiles:=0;
TotSize:=0;
if not(sh=INVALID_HANDLE_VALUE) then
begin
repeat
if (fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)=0 then
begin
inc(NbFiles);
TotSize:=totsize+(fd.nFileSizeLow);
end
else if fd.cFileName[0]<>'.' then
inc(nbdir);
until not FindNextFile(sh,fd);
showmessage('Repertoire : '+rep+' '+inttostr(nbfiles)+' Fichiers '+inttostr(nbdir)+' Dir. Utilise '+inttostr(totsize div 1024)+'kb');
end;
windows.findclose(sh);
end;
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 22 janv. 2004 à 19:21
Le résultat que tu obtiens est celui de la recherche d'un répertoire du nom indiqué par ShellTreeView1.Path.
Pour obtenir un comptage des fichiers contenus dans un répertoire, il faut indiquer un masque de fichiers, ainsi que l'a fait Manchester :
ShellTreeView1.Path+'\*.*'
Donc, il faut modifier comme suit :
if FindFirst(ShellTreeView1.Path + '\*.*', faAnyFile, Info)