Freie Laufwerksbuchstaben ermitteln?
Tach auch,
habe gerade meine ABI Info Klausur hinter mich gebracht, und wollte jetzt zum Entspannen noch ein paar leichte Sachen programmieren :D Das Topic sagt eigentlich schon alles, gibt es eine Funktion die mir alle freien Laufwerksbuchstaben zurückliefert? Wenn nicht würde ich alle belegten Buchstaben mittels dieser Funktion ermitteln und das dann mit dem Alphabet abgleichen. Oder kennt wer noch einen besseren Weg? Thanx Salomon |
Schau mal in die CodeLibrary, da ist ein Beitrag zum Ermitteln der vergebenen Laufwerksbuchstaben. Ergo - damit weisst Du auch die noch zur Verfügung stehenden ;-)
...:cat:... |
Also, meine zweite "Do It Yourself" Methode, schade das es da nichts fertiges gibt.
|
Hallo Salomon,
die nachfolgende Procedure sollte dir eigentlich helfen zu entstpannen ...
Delphi-Quellcode:
bye
//-----------------------------------------------------------------------//
//#######################################################################// //## Procedure GetLogicalDriveList: ##// //#######################################################################// //## Datum: Änderung: ##// //## ====== ========= ##// //## 10.01.2001 Initial Release ##// //#######################################################################// procedure GetLogicalDriveList(List: TStrings); var Drive: Integer; Bits: set of 0..25; begin List.Clear; Integer(Bits) := Windows.GetLogicalDrives; for Drive := 0 to 25 do begin if Drive in Bits then begin GetDriveType(PChar(Char(Drive + Ord('A')) + ':\')); List.Add(Char(Drive + Ord('A'))); end; end; end; |
Danke, dann bastel ich das der vielzahl von Funktionen eine, die mir einen freien Laufwerksbuchstaben zurückliefert.
|
So, ich habe Duffy's Procedure etwas umgeschrieben, kann man da noch was optimieren? Evtl. sowas in die Richtung: if Drive not in Bits
Delphi-Quellcode:
// Liefert den ersten freien Laufwerksbuchstaben zurück
function Free_Drive_Letter : string; var Drive: Integer; Bits: set of 0..25; gefunden : boolean; begin result := ''; gefunden := false; Integer(Bits) := Windows.GetLogicalDrives; for Drive := 0 to 25 do begin if Drive in Bits then else If gefunden = false then begin gefunden := true; result := (Char(Drive + Ord('A'))+':') end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz