![]() |
GetLogicalDrives und VolumeLabel
Hallo Leute,
wie ich sehe, liefert GetLogicalDrives aus den IOUtils nur die Buchstaben und nicht die Laufwerksnamen. Das ist aber hilfreich. Den Quelltext liefert direkt die KI von Bing, das wäre kein Problem. IOUtils ist riesig: gibt es da vielleicht eine Komplettlösung mit den Volume-Namen. Außerdem wäre es schön, wenn das CD-Laufwerk außen vor bliebe, wenn kein Medium einliegt. Hat jemand Rat oder kennt einen Link. Gruß Willie. |
AW: GetLogicalDrives und VolumeLabel
Da du schon Bing / CoPilot erwähnt hast, der kann diese Frage auch beantworten (TPath.GetVolumeName(Drive)):
Ja, du kannst auch die `IOUtils`-Einheit in Delphi verwenden, um die Laufwerksnamen zu ermitteln. Hier ist ein Beispiel, wie du dies umsetzen kannst:
Delphi-Quellcode:
In diesem Beispiel wird die Methode `TDirectory.GetLogicalDrives` verwendet, um eine Liste der logischen Laufwerke zu erhalten. Anschließend wird `TPath.GetVolumeName` verwendet, um den Namen jedes Laufwerks zu ermitteln.
uses
System.SysUtils, System.IOUtils, System.Classes; procedure TForm1.Button1Click(Sender: TObject); var Drives: TStringDynArray; Drive: string; DriveList: TStringList; begin DriveList := TStringList.Create; try Drives := TDirectory.GetLogicalDrives; for Drive in Drives do begin DriveList.Add(Drive + ': ' + TPath.GetVolumeName(Drive)); end; ShowMessage(DriveList.Text); finally DriveList.Free; end; end; Falls du weitere Fragen hast oder Hilfe bei der Anpassung des Codes benötigst, lass es mich wissen! 😊 |
AW: GetLogicalDrives und VolumeLabel
Ich habe gerade nochmal nachgeschaut, die Methode gibt es nicht.
Naja, nicht das erste Mal, dass Copilot mir eine Funktion "erfindet", die mir unheimlich geholfen hätte, wenn es sie denn geben würde... |
AW: GetLogicalDrives und VolumeLabel
Hallo,
ich habe im eigenen Archiv nachgesehen und bin fündig geworden. Mit SHGetFileInfo aus ShellAPI wird die fertige Lösung geliefert z.B. Windows (C:\) . Genau, was ich wollte. Die Lösung werde ich hier einstellen aber nicht mehr heute. Auch lässt sich aus dem Namen der LW-Buchstabe zurück ermitteln. War hier im Forum mehrfach Thema! Willie. |
AW: GetLogicalDrives und VolumeLabel
So geht es:
Delphi-Quellcode:
Es wäre schön, wenn die Embas diese nützliche Routine in IOUtils aufnehmen würden. Dann brauchte man sich nicht mit dem Systemaufruf herum zu schlagen. Vergisst man wieder.
uses Winapi.ShellAPI;
function GetOneDrive(const Drive: string): string; var FI: TSHFileInfo; begin if SHGetFileInfo( PChar(Drive), 0, FI, SizeOf(FI), SHGFI_DISPLAYNAME ) = 0 then RaiseLastOSError; Result := FI.szDisplayName; end; function GetAllDrives: TStringDynArray; overload; var i: Integer; begin Result := TDirectory.GetLogicalDrives; for i:=Low(Result) to High(Result) do Result[i] := GetOneDrive(Result[i]); end; Gruß Willie. |
AW: GetLogicalDrives und VolumeLabel
Zitat:
Die XE- bis XE8-Hilfen werden im aktuellen DocWiki noch verlinkt, sind aber nicht mehr online. (ich glaub aber, die waren vorm letzten Servercrash schon weg) |
AW: GetLogicalDrives und VolumeLabel
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz