[TRUCOS DELPHI] Tamaño del Directorio / Carpeta.
delphi
function GetDirSize (dir: string; subdir: boolean): longint; var rec: TSearchRec; found: integer; begin result:=0; if dir[length(dir)]<>'\' then dir:=dir+'\'; found:= findfirst(dir+'*.*', faAnyFile, rec); while found=0 do begin inc(result, rec.size); if (rec.Attr and faDirectory > 0) and (rec.Name[1]<>'.') and (subdir=true) then inc(result, getdirsize(dir+rec.Name, true)); found:=findnext(rec); end; findclose(rec); end;
Ejemplo de uso:
delphi
procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := FloatToStr(GetDirSize('c:\download', false)/sqr(1024)) + ' MBytes'; label2.Caption := FloatToStr(GetDirSize('c:\download', true)/sqr(1024)) + ' MBytes'; end;
Saludos!