~~~~~~~~~~~~~~~~~~~~~~~~~
var
DirBytes : integer;
function FolderSize(Dir:string):integer;
var
SearchRec : TSearchRec;
Separator : string;
begin
Result:=0;
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 begin
DirBytes := DirBytes + SearchRec.Size;
end else if DirectoryExists(Dir+Separator+SearchRec.Name) then begin
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin
FolderSize(Dir+Separator+SearchRec.Name) ;
end;
end;
while FindNext(SearchRec) = 0 do begin
if FileExists(Dir+Separator+SearchRec.Name) then begin
DirBytes := DirBytes + SearchRec.Size;
end else if DirectoryExists(Dir+Separator+SearchRec.Name) then
begin
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin
FolderSize(Dir+Separator+SearchRec.Name) ;
end;
end;
end;
end;
FindClose(SearchRec) ;
Result:=DirBytes;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~
Delphi tips navigator:
» How to convert BMP to WMF
« Is computer attached to a network?
