Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Freie Laufwerksbuchstaben ermitteln? (https://www.delphipraxis.net/4609-freie-laufwerksbuchstaben-ermitteln.html)

Salomon 6. Mai 2003 13:10


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

sakura 6. Mai 2003 13:48

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:...

Salomon 6. Mai 2003 13:57

Also, meine zweite "Do It Yourself" Methode, schade das es da nichts fertiges gibt.

Duffy 6. Mai 2003 14:00

Hallo Salomon,
die nachfolgende Procedure sollte dir eigentlich helfen zu entstpannen ...
Delphi-Quellcode:
//-----------------------------------------------------------------------//

//#######################################################################//
//## 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;
bye

Salomon 6. Mai 2003 14:17

Danke, dann bastel ich das der vielzahl von Funktionen eine, die mir einen freien Laufwerksbuchstaben zurückliefert.

Salomon 6. Mai 2003 15:19

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