Feedback

VB - Original UNC Pfad eines Netzlaufwerkes ermitteln

Veröffentlicht von am 9/1/2008
(1 Bewertungen)
Die nachfolgende Klasse ermittelt den UNC Namen eins gemounteten Netzlaufwerkes. (Ddanke an Volker für die Deklaration)
Public Class clsUnc


    Private Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, ByRef cbRemoteName As Integer) As Integer

    Friend Shared Function fnGetUncPath(ByVal strDriveLetter As String) As String
        Dim intRet As Integer
        Dim strRet As String = ""
        Dim Length As Integer = 260
        Dim strTemp As String = New String(" ", Length)

        intRet = WNetGetConnection(strDriveLetter.Substring(0, 1) & ":", strTemp, Length)
        strRet = strTemp.Substring(0, strTemp.IndexOf(Chr(0)))
        Return strRet
    End Function
End Class

1 Kommentare zum Snippet

Keks1911 schrieb am 6/21/2010:
Prinzipiell nicht schlecht, nur folgendes:
1. UNC-Pfade können länger als 260 Zeichen sein.
2. Die ERROR_MORE_DATA-Situation muss separat behandelt werden: in Length steht nach dem Aufruf die tatsächliche Länge des Pfads und sollte demnach an den Benutzer weitergegeben werden.
3. Die Methode WNetGetConnection wirft insgesamt 7 Exceptions, von denen keine einzige behandelt wird.
4. Ein einzelnes Zeichen (strDriveLetter) sollte als Char akzeptiert werden, nicht als String.
 

Logge dich ein, um hier zu kommentieren!