Einzelnen Beitrag anzeigen

Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
103 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Laufwerkgrössen ermitteln

  Alt 24. Okt 2021, 14:26
Hi himitsu
Ich denke eher mal deine Schleife ist falsch.
Sorry, das ist nicht mein Code, sondern der stammt von hier.
Der eigentliche Fehler steckt in Deinem Code:
"i" iteriert über die Elemente des Arrays, und diesen Index übergibst Du an DiskFree(i):
Delphi-Quellcode:
  Result := TDirectory.GetLogicalDrives;
  for i:=Low(Result) to High(Result) do
  begin
    Result[i] := GetOneDrive(Result[i]);
    space := DiskFree(i); <-- falscher Parameter!
Du musst aber die Nummer des Laufwerks übergeben, wobei 1=A, 2=B usw. bedeutet. Also den Inhalt des Arrayelements an der Stelle "i", und nicht "i" selber:
Delphi-Quellcode:
LDrive := Ord(Result[i][1]) - Ord('A') + 1;
space := DiskFree(LDrive);
.
Oder aber direkt GetDiskFreeSpaceEx(Result[i], Space, ...) verwenden. Diese API-Funktion arbeitet direkt mit Laufwerksbuchstaben bzw. Ordnernamen.
Achim
  Mit Zitat antworten Zitat