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