Hallo Zusammen,
die Function habe ich bis jetzt eingesetzt um die Verzeichnisgröße herauszufinden.
Das funktioniert solange keine Datei größer ist als 2GB weil rec.Size ein Integer
ist. Ich habe Verzeichnisse die grössere Dateien enthalten z.B.: Image Files aus der
Datensicherung. Mit rec.Size bekomme ich natürlich Müll geliefert.
Kennt Jemand eine andere Möglichkeit die Verzeichnisgröße abzufragen?
Delphi-Quellcode:
{-----------------------------------------------------------}
{}function GetDirSize(dir: string; subdir: Boolean): Int64;
{-----------------------------------------------------------}
//label1.Caption := FloatToStr(GetDirSize('e:\download', False) / Sqr(1024)) + ' MBytes';
var
rec: TSearchRec;
found: Integer;
begin
Result := 0;
if dir[Length(dir)] <> '\' then dir := dir + '\';
found := FindFirst(dir + '*.*', faAnyFile, rec);
while found = 0 do
begin
Inc(Result, rec.Size);
if (rec.Attr and faDirectory > 0) and (rec.Name[1] <> '.') and (subdir = True) then
Inc(Result, GetDirSize(dir + rec.Name, True));
found := FindNext(rec);
end;
FindClose(rec);
end;{GetDirSize}
Gruß Kostas