function GetDirectorySize(const ADirectory:string):Integer;
var
sr:TSearchRec;
begin
Result:=0;
if not DirectoryExists(ADirectory) then exit;
if FindFirst(ADirectory+'/*.*', faAnyFile, sr) = 0 then
begin
repeat
if ((sr.Attr and faDirectory)=faDirectory) and(sr.Name<>'.') and (sr.Name<>'..') then begin
Result:=Result+GetDirectorySize(ADirectory+'/'+sr.Name) ;
end else if (sr.Name <>'.') and (sr.Name<>'..') then begin
Result:=Result+sr.Size;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;