RSS
StartseiteKnowledge LibraryTop 10Impressum

Typenerkennung

Den Gerätetyp/ die Existenz eines Laufwerks ermitteln

Windows unterscheidet bei Laufwerken fünf verschiedene Gerätetypen - vom Wechsellaufwerk bis zur RAM-Disk. Zur Ermittlung des Typs, steht die API Funktion GetDriveType zur Verfügung.

Windows unterscheidet bei Laufwerken fünf verschiedene Gerätetypen - vom Wechsellaufwerk bis zur RAM-Disk. Zur Ermittlung des Typs, steht die API Funktion GetDriveType zur Verfügung. Unter Angabe des Hauptverzeichnisses, liefert sie einen Wert, der zwischen 0 – 6 liegt und entweder den Laufwerkstyp bestimmt oder einen Misserfolg der Funktion anzeigt.

Die Funktion DriveType verpackt diesen API Aufruf und erwartet Angaben zum Laufwerk in beliebiger Form, vom einfachem Buchstaben, bis hin zum kompletten Pfad (z.B. App.Path):

Private Declare Function GetDriveType Lib "kernel32" Alias _
        "GetDriveTypeA" (ByVal nDrive As String) As Long

Public Enum DriveTypeConstants
  dtUnknown = 0      '// Unbekanntes Laufwerk
  dtInvalidRoot = 1  '// Ungültiges Hauptverzeichnis
  dtRemoveable = 2   '// Wechsellauwferk
  dtFixed = 3        '// Festplattenlaufwerk
  dtRemote = 4       '// Netzlaufwerk
  dtCDROM = 5        '// CD-ROM
  dtRAMDisk = 6      '// RAM-Disk
End Enum

Public Function DriveType(ByVal Drive As String) As DriveTypeConstants
  DriveType = GetDriveType(Left$(Drive, 1) & ":\")
End Function

Natürlich können Sie auf ähnliche Weise auch überprüfen, ob ein bestimmtes Laufwerk existiert oder nicht. Falls das angegebene Hauptverzeichnis nicht existiert, liefert GetDriveType den Wert dtInvalidRoot (1):

Public Function DriveExists(ByVal Drive As String) As Boolean
  DriveExists = GetDriveType(Left$(Drive, 1) & ":\") <> dtInvalidRoot
End Function