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.