2 Stimmen

UNC-Pfad für Mapped Drive abrufen VB.net

Ich muss den UNC-Pfad vom zugeordneten Laufwerk abrufen. Ich habe versucht, WNetGetConnection zu verwenden, aber es funktioniert nicht für mich. Es gibt Fehler 487 zurück. Weiß jemand, wie man mit diesem Fehler umgeht oder wie man den UNC-Pfad abrufen kann?

4voto

Chris Haas Punkte 50077

Völlig gehen mit @Alex K's P/Invoke Vorschlag, ich wollte nur eine Hack-Methode der Piping durch die Post net use Befehl:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim RemotePath = GetUncSourcePath("v"c)
    If String.IsNullOrEmpty(RemotePath) Then
        Trace.WriteLine("there was an error")
    Else
        Trace.WriteLine(RemotePath)
    End If
    Me.Close()
End Sub
Private Shared Function GetUncSourcePath(ByVal driveLetter As Char) As String
    If String.IsNullOrEmpty(driveLetter) Then Throw New ArgumentNullException("driveLetter")
    If (driveLetter < "a"c OrElse driveLetter > "z") AndAlso (driveLetter < "A"c OrElse driveLetter > "Z") Then Throw New ArgumentOutOfRangeException("driveLetter", "driveLetter must be a letter from A to Z")
    Dim P As New Process()
    With P.StartInfo
        .FileName = "net"
        .Arguments = String.Format("use {0}:", driveLetter)
        .UseShellExecute = False
        .RedirectStandardOutput = True
        .CreateNoWindow = True
    End With
    P.Start()
    Dim T = P.StandardOutput.ReadToEnd()
    P.WaitForExit()
    For Each Line In Split(T, vbNewLine)
        If Line.StartsWith("Remote name") Then Return Line.Replace("Remote name", "").Trim()
    Next
    Return Nothing
End Function

1voto

Alex K. Punkte 165323

Sie können die WNetGetUniversalName API.

0voto

ed v Punkte 1

Funktioniert bei mir gut und ist einfacher als ein Api-Aufruf wie bei http://vbnet.mvps.org/index.html?code/network/uncfrommappeddrive.htm Das Einzige, was ich tun musste, war, eine Codezeile hinzuzufügen, um die Variable Line zu dimmen.

Danke für die Hilfe

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X