Определение размера каталога

Советы » Каталоги » Определение размера каталога

Вопрос довольно распространенный. Для создания приложения, которое определяло бы размер каталога нам понадобится модуль FileCtrl.


uses

FileCtrl;

function

DirSize(Dir:string): integer; var


SearchRec: TSearchRec;
Separator: string;
DirBytes: integer;
begin


Result:=-1;
if Copy(Dir,Length(Dir),1)='' then Separator := ''
else
Separator := '';
if FindFirst(Dir+Separator+'*.*',faAnyFile,SearchRec) = 0 then begin if FileExists(Dir+Separator+SearchRec.Name) then DirBytes := DirBytes + SearchRec.Size else if DirectoryExists(Dir+Separator+SearchRec.Name) then begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then DirSize(Dir+Separator+SearchRec.Name); end;
while FindNext(SearchRec) = 0 do begin if FileExists(Dir+Separator+SearchRec.Name) then DirBytes := DirBytes + SearchRec.Size else if DirectoryExists(Dir+Separator+SearchRec.Name) then begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then DirSize(Dir+Separator+SearchRec.Name); end;
end;
end;
FindClose(SearchRec);
Result:=DirBytes;
end

;

procedure

TForm1.Button1Click(Sender: TObject); var


DirBytes: integer;
begin


DirBytes:=DirSize('c:windows'); Form1.Label1.Caption:=IntToStr(DirBytes); end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com