Safirmedya Forum

Programlama => Programlama Dilleri => Delphi => Konuyu başlatan: Safirmedya - 06 Mart , 2011, 22:45:55

Başlık: Bir Klasörün Boyutunu Öğrenmek
Gönderen: Safirmedya - 06 Mart , 2011, 22:45:55
Bir klasördeki dosyaların kaç byte yer kapladığını öğrenmek için
function TForm1.GetDirectorySize(const ADirectory: string): Integer;
var
  Dir: TSearchRec;
  Ret: integer;
  Path: string;
begin
Result := 0;
Path := ExtractFilePath(ADirectory);
Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);
if Ret <> NO_ERROR then
   exit;
try
  while ret=NO_ERROR do
  begin
    inc(Result, Dir.Size);
    if (Dir.Attr in [faDirectory]) and (Dir.Name[1] <> '.') then
      Inc(Result, GetDirectorySize(Path + Dir.Name + '\*.*'));
      Ret := Sysutils.FindNext(Dir);
    end;
finally
  Sysutils.FindClose(Dir);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(intToStr(getdirectorysize('C:\windows')));
end;