Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alle Festplatten finden (https://www.delphipraxis.net/83208-alle-festplatten-finden.html)

Blackheart 29. Dez 2006 09:25


Alle Festplatten finden
 
Hallo Leute
Kann Mir wer sagen der mehr als eine Partion oder Festplatte ob der Code funktioniert.
Hab nur eine Festplatte C: und da hauts hin.
Dank

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Drive:Char;
begin
  for Drive := 'A' to 'Z' do
  begin
   case GetDriveType(PChar(Drive + ':/')) of
   DRIVE_FIXED: ComboBox1.Items.Add(Drive+':\');
  end;
end;

Gausi 29. Dez 2006 09:29

Re: Alle Festplatten finden
 
C,D,E,F,J,O werden bei mir alle erkannt. Zwei davon sind USB-Platten. Die CD/DVD-Laufwerke (auch die virtuellen) sowie die Kartenslots werden nicht aufgelistet. Funktioniert also.

Blackheart 29. Dez 2006 09:31

Re: Alle Festplatten finden
 
Danke Gausi !

mkinzler 29. Dez 2006 10:00

Re: Alle Festplatten finden
 
Man könnte es auch umgekehrt machen, also die Laufwerke suchen und nicht anhand der Buchstaben schauen ob diese existieren.
z.B. per WMI

marabu 29. Dez 2006 10:10

Re: Alle Festplatten finden
 
Hi,

man kann auch alle Laufwerksbuchstaben mit einem einzigen Aufruf von GetLogicalDrives() ermitteln.

Grüße vom marabu

himitsu 29. Dez 2006 10:24

Re: Alle Festplatten finden
 
Wenn du nicht nur die über die "alten" (DOS)Laufwerksbuchstaben gemounteten Laufwerke finden möchtest, dann solltest du dir mal im PSDK/MSDN die unter MSDN-Library durchsuchenGetLogicalDrives weiterverlinkten Funktionen anschauen.

Laufwerke können schließlich auch als Pfad gemountet werden und müssen nicht unbedingt über sowas wie "C:\" da sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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