VB 6 Code in VB.net umschreiben

wappl

Grünschnabel
Hallo zusammen,

habe hier einen VB 6 Code zum Erkennen von Laufwerken und möchte den gerne in einen VB.net Code umschreiben.

Der Quellcode sieht so aus:

Code:
Option Explicit
' zunächst die benötigten API-Deklarationen
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

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

Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6

' Alle Laufwerke eines bestimmten Typs ermitteln
' z.B. CD-ROM Laufwerke
Private Function GetAllDrives(Optional ByVal DriveType As _
 Long = 0) As String

 Dim I As Integer
 Dim Result As Long
 Dim Drives() As String
 Dim Dummy As String
 Dim sDrives As String
 
 Dummy = Space(255)
 Result = GetLogicalDriveStrings(Len(Dummy), Dummy)
 
 Drives = Split(Dummy, Chr$(0))
 For I = 0 To UBound(Drives) - 1
   If GetDriveType(Drives(I)) = DriveType Or _
     DriveType = 0 Then
     sDrives = sDrives & Left$(Drives(I), 1) 
   End If
 Next I
 GetAllDrives = sDrives
End Function

Private Sub Form_Load()
' Ermitteln aller CD-Laufwerke
Me.Print GetAllDrives(DRIVE_CDROM)
End Sub


Bis hier habe ich es jetzt schon:

Code:
 Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Integer, ByVal lpBuffer As String) As Integer
    Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Integer
    ' zunächst die benötigten API-Deklarationen


    Private Const DRIVE_REMOVABLE As Short = 2
    Private Const DRIVE_FIXED As Short = 3
    Private Const DRIVE_REMOTE As Short = 4
    Private Const DRIVE_CDROM As Short = 5
    Private Const DRIVE_RAMDISK As Short = 6

    ' Alle Laufwerke eines bestimmten Typs ermitteln
    ' z.B. CD-ROM Laufwerke
    Private Function GetAllDrives(Optional ByVal DriveType As Integer = 0) As String

        Dim I As Short
        Dim Result As Integer
        Dim Drives() As String
        Dim Dummy As String
        Dim sDrives As String

        Dummy = Space(255)
        Result = GetLogicalDriveStrings(Len(Dummy), Dummy)

        Drives = Split(Dummy, Chr(0))
        For I = 0 To UBound(Drives) - 1

doch hier habe ich Probleme mit "Left":

Code:
If GetDriveType(Drives(I)) = DriveType Or DriveType = 0 Then
                sDrives = sDrives & Left(Drives(I), 1)
            End If


Wie muss ich hier "Left" handhaben, damit er mir den "GetDriveType-Befehl" richtig macht?

Danke für eure Hilfe.

Gruss pastl
 
Zuletzt bearbeitet:
Hallo

HI
In der .NET Klassenbibliothek gibt es eine Funktion die dir alle physikalischen Laufwerke zurückliefert:

Code:
Dim Drives() As String = System.Environment.GetLogicalDrives

oder:
Code:
Dim Drives() As String = IO.Directory.GetLogicalDrives

Ich weiß zwar nicht was der Unterschied zwischen den beiden Funktionen ist aber sie funktionieren Beide

MFG TheIndra
 
Zurück