So kann man es machen:
Code:
function DirSize( path : String ) : Int64;
var sr: TSearchRec;
begin
path := IncludeTrailingPathDelimiter(path);
Result := 0;
if FindFirst( path + '*.*', faAnyFile, sr) = 0 then
try
repeat
if (sr.Attr and faDirectory)=faDirectory then
begin
if (sr.Name<>'') and (sr.Name<>'.') and (sr.Name<>'..') then
Result := Result + DirSize(path + sr.Name );
end
else Result := Result + sr.Size;
until FindNext(sr) <> 0;
finally
FindCLose(sr);
end;
end;
Nur eine kleine Korrektur: Anstelle von
Delphi-Quellcode:
Finally
FindClose(sr);
End;
solltest Du einen qualifizierten Bezeichner verwenden, weil es
FindClose auch in
Winapi.Windows gibt und der Compiler u. U. ins Stocken gerät...
Delphi-Quellcode:
Finally
System.SysUtils.FindClose(sr);
End;
Viele Grüße, Andreas