Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Verzeichnisgröße gerechnet wenn Verzeichnis >2GB ist

  Alt 16. Aug 2008, 20:05
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
  Mit Zitat antworten Zitat