Home > Visual Basic Classic > Dateisystem > Laufwerksbezeichnung ermitteln / auslesen

Laufwerksbezeichnung ermitteln / auslesen

Veröffentlicht am 04.09.2008 von Sebastian Krogolewski

Artikelinformationen

Sprache:
Visual Basic 6
Datenbank:
keine

Artikel speichern

del.icioMister WongGoogleLinkarenaYiggSpurlFurl

Artikel bewerten

Bewertng:3.50 / 5 (2 mal bewertet)

Mit dem folgenden Artikel wird gezeigt, wie man die Laufwerksbezeichnung ermitteln kann. Die Win API bietet uns die Funktion GetVolumeInformationA bzw. GetVolumeInformationW aus der Kernel32.dll an. Man kann mit dieser API Funktion zwar weitaus mehr Informationen auslesen, das wird aber an dieser Stelle nicht benötigt und deshalb in einem anderen Artikel genauer behandelt.

 

MAX_PATH Konstante definieren:

1
Private Const MAX_PATH As Long = 260

 

Einbinden der Win API Funktion GetVolumeInformationA bzw. GetVolumeInformationW als GetVolumeInformationAPI aus der Kernel32.dll:

1
2
3
4
5
Private Declare Function GetVolumeInformationAPI Lib "Kernel32" Alias "GetVolumeInformationA" ( _
    ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, _
    ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
    lpMaximumComponentLength As Long, lpFileSystemFlags As Long, _
    ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As String) As Long

 

GetVolumeInformationA erwartet 8 Parameter:

lpRootPathName: Zeiger auf eine Zeichenkette, welche das Wurzelverzeichnis des zu beschreibenden Laufwerks enthält.

lpVolumeNameBuffer: Zeiger auf reservierten Speicher, in welchen die Laufwerksbezeichnung geschrieben wird. Maximale größe ist MAX_PATH + 1.

nVolumeNameSize: Größe des reservierten Speichers für die Laufwerksbezeichnung. Maximal MAX_PATH + 1.

lpVolumeSerialNumber: Zeiger auf eine Variable, in der die Seriennummer zurückgeliefert wird. Wenn NULL übergeben wird, wird die Seriennummer nicht ermittelt.

lpMaximumComponentLength: Zeiger auf eine Variable, welche die Maximallänge eines Teils einer Pfadangabe (zwischen zwei Backslasches) zurückliefert.

lpFileSystemFlags: Zeiger auf eine Variable, in der alle Eigenschaften des verwendeten Dateisystems zurückgeliefert werden.

lpFileSystemNameBuffer: Zeiger auf reservierten Speicher, in welchem die Dateisystembezeichnung zurückgeliefert wird. Maximale Länge ist MAX_PATH + 1.

nFileSystemNameSize: Größe des reservierten Speichers für die Dateisystembezeichnung. Maximal MAX_PATH + 1.

 

Rückgabewert:

Bei Erfolg: Wenn die Funktion erfolgreich ausgeführt wurde liefert die Funktion ein Wert !0 zurück.

Bei Fehlschlag: Wenn die Funktion fehlschlägt, liefert die Funktion den Wert 0 zurück. Mit GetLastError können weiter Informationen zum Fehler ermittelt werden.

 

VB Funktion
1
2
3
4
56
7
8
9
1011
12
13
14
Public Function getVolumeLabel(ByVal DriveLetter As String) As String
Dim strVolumeLabel As String
Dim lenVolumeLabel As Long
Dim RetVal As Longstr
 VolumeLabel = String$(MAX_PATH + 1, 0)
RetVal = GetVolumeInformationAPI(Left$(DriveLetter, 1) & ":\", strVolumeLabel, Len(strVolumeLabel), &O0, &O0, &O0, &O0, &O0)
If (RetVal <> 0) Then
    lenVolumeLabel = InStr(1, strVolumeLabel, vbNullChar) - 1
    If (lenVolumeLabel > 0) Then        getVolumeLabel = Left$(strVolumeLabel, lenVolumeLabel)
    End If
End If
End Function

 

Hinweis:

Der Laufwerksbuchstabe kann auch als komplette Pfadangabe übergeben werden. Die Funktion ermittelt dann das Wurzelverzeichnis des Laufwerks automatisch.

Downloads

Suchbegriffe

VB6, Visual Basic, GetVolumeInformation, GetVolumeInformationA, GetVolumeInformationW

Suche