Получить UNC-путь для подключенного диска VB.net - PullRequest
2 голосов
/ 04 мая 2010

Я хочу получить UNC-путь от подключенного диска. Я пытался использовать WNetGetConnection, но он не работает для меня. Возвращает ошибку 487. Кто-нибудь знает, как бороться с этой ошибкой или каким-либо другим способом получить путь UNC?

Ответы [ 3 ]

4 голосов
/ 04 мая 2010

Полностью согласившись с предложением @Alex K P / Invoke, я просто хотел опубликовать метод взлома с помощью команды net use:

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
1 голос
/ 04 мая 2010

Вы можете использовать API WNetGetUniversalName.

0 голосов
/ 17 ноября 2011

Работает хорошо для меня и проще, чем вызов API, как на http://vbnet.mvps.org/index.html?code/network/uncfrommappeddrive.htm Единственное, что мне нужно было добавить строку кода для Dim переменной Line.

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...