Hallo,
Ihr kennt es bestimmt!
Wenn Ihr einen Pfad und ggf. Datei über einen File-Chooser auswählen wollt.
Das Ergebnis könnte so aussehen.
T:\geteiltes_Verzeichnis\meinExcel.xlsx
Vieleicht wollt Ihr den Pfad in einer Datenbank hinterlegen, damit alle Benutzer (natürlich mit der Berechtigung auf das Verzeichnis zugreifen zu können) die Excel-Datei lesen.
Das T: – Laufwerk ist aber ein Netzlaufwerk und hat im Hintergrund einen UNC-Pfad.
Somit können andere Benutzer, die kein T-Laufwerk besitzen aber den Zugang zu eurem Verzeichnis haben, nicht darauf zugreifen.
Es ist sehr mühselig, den Laufwerksbuchstaben von Hand in den UNC-Pfad , beim erzeugen, zu wandeln.
Deshalb diese Lösung:
Ausgangslagen:
Bevor Ihr den Pfad in einer Datenbank ablegt, wandelt Ihr den Laufwerksbuchstaben einfach in einen UNC-Pfad um.
T:\geteiltes_Verzeichnis. ( Im Hintergrund ist der UNC-Pfad —> \\myFileServer\VerzeichnisX\
Imports System.IO
Module Module1
Public Declare Function WNetGetConnection Lib "mpr.dll" Alias _
"WNetGetConnectionA" (ByVal lpszLocalName As String,
ByVal lpszRemoteName As String, ByRef cbRemoteName As Integer) As Integer
Sub Main()
Dim ret As Integer
Dim out As String = New String(" ", 260)
Dim len As Integer = 260
' Testet es einmal: Anstatt T könnt Ihr euren eingenen Netzlaufwerksbuchstaben einfügen.
ret = WNetGetConnection("T:", out, len)
If out.Count > 0 Then
Console.WriteLine("UNC Path: " & out.Trim)
Else
Console.WriteLine("Drive not found")
End If
Console.ReadLine()
End Sub
End Module
Viel Spaß beim Testen.