Announcement

Collapse
No announcement yet.

DiskFree

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DiskFree

    Die Delphi-Funktion DiskFree gibt von einem NTFS-Laufwerk einen ungültigen Wert zurück. Gibt es eine andere Lösung?

    Danke
    Hermann

  • #2
    Hallo,

    welche Delphi-Version wird verwendet und wie groß ist diese NTFS-Partition? In meinem Test mit Delphi 5.01 liefert <b>DiskFree</b> die gleichen (richtigen) Daten zurück wie die Win32-API-Funktion <b>GetDiskFreeSpaceEx</b>:
    <pre>
    procedure TForm1.Button1Click(Sender: TObject);
    var
    TempDriveStrings : PChar;
    FreeAvailable, TotalSpace, TotalFree: Int64;
    begin
    TempDriveStrings := 'C:\';
    MemoLog.Lines.Add('Werte von GetDiskFreeSpaceEx:');
    GetDiskFreeSpaceEx(TempDriveStrings, FreeAvailable, TotalSpace, @TotalFree);
    MemoLog.Lines.Add(Format('%d MB total', [TotalSpace div (1024*1024)]));
    MemoLog.Lines.Add(Format('%d MB frei', [TotalFree div (1024*1024)]));
    MemoLog.Lines.Add('');
    MemoLog.Lines.Add('Werte von DiskFree:');
    TotalFree := DiskFree(3);
    MemoLog.Lines.Add(Format('%d MB frei', [TotalFree div (1024*1024)]));
    end;
    </pre>
    P.S: Das muss auch so sein, weil DiskFree in der Delphi-Unit <b>SysUtils</b> auch nur die Win32-API-Funktion GetDiskFreeSpaceEx aufruft ;-)
    &#10

    Comment


    • #3
      Danke!

      Der Fehler war die falsche Variable 'integer' statt 'int64'.

      Herman

      Comment

      Working...
      X