UNC Pfad ermitteln VB .net 2005

29/08/2007 - 14:08 von Jörn Janz | Report spam
Hallo NG,

ich muss in einem lokalen Netzwerk Pfadangaben als UNC Pfad ausgeben.
Den Pfad bestimme ich mit einem OpenFileDialog. Gibt es in dem
OpenFileDialog eine UNC Ausgabefunktion?

Ich habe schon ein passendes Beispiel gefunden. Nur leider komme ich
mit dem Beispiel nicht klar bzw. das Beispiel làuft nicht unter VB
2005. Ich habe leider wenig Erfahrung mit der Einbindung von DLL
Dateien in meine Projekte.

http://groups.google.com/group/micr...9f2115d333

Imports System.Text
Imports System.Runtime.InteropServices

Module UNC

<DllImport("mpr.dll", SetLastError:=False, CharSet:=CharSet.Auto)>
_
Function WNetGetConnection( _
ByVal localName As String, _
ByVal remoteName As StringBuilder, _
ByRef remoteSize As Int32) As Int32
End Function

Public Function UNC_Pfad(ByVal Pfad)
Try
Dim sb As New StringBuilder(300)
Dim sb2 As New StringBuilder
sb2.Append(Pfad)

Dim size As Int32 = sb.Capacity

Dim Laufwerk As String = Split(Pfad, "\")(0)
WNetGetConnection(Laufwerk, sb, size)

Dim UNC As String = sb.ToString
sb2.Replace(Laufwerk, UNC)

Return sb2.ToString
Catch ex As Exception
Throw ex
End Try
End Function

End Module


Vielen Dank für Eure Unterstützung.

Gruß - Jörn
 

Lesen sie die antworten

#1 Volker Strähle
30/08/2007 - 10:19 | Warnen spam
Hallo Jörn,

mit 2005 hab ich es nicht getestet, aber mit 2 kleinen Ergànzungen geht das
Beispiel unten. Nur wenn es sich um ein lokales Laufwerk handelt, stimmt die
Ausgabe nicht.

http://groups.google.com/group/micr...9f2115d333

Imports System.Text
Imports System.Runtime.InteropServices

Module UNC

<DllImport("mpr.dll", SetLastError:=False, CharSet:=CharSet.Auto)>
_
Function WNetGetConnection( _
ByVal localName As String, _
ByVal remoteName As StringBuilder, _
ByRef remoteSize As Int32) As Int32
End Function

Public Function UNC_Pfad(ByVal Pfad) as String <<<<<
If Left(Pfad, 2) = "\\" Then <<<<

Return Pfad

Else

Try
Dim sb As New StringBuilder(300)
Dim sb2 As New StringBuilder
sb2.Append(Pfad)

Dim size As Int32 = sb.Capacity

Dim Laufwerk As String = Split(Pfad, "\")(0)
WNetGetConnection(Laufwerk, sb, size)

Dim UNC As String = sb.ToString
sb2.Replace(Laufwerk, UNC)

Return sb2.ToString
Catch ex As Exception
Throw ex
End Try
End Function
end if

End Module


Vielen Dank für Eure Unterstützung.

Gruß - Jörn

Ähnliche fragen