System.IO.File.Exists UND System.IO.Directory.Exists bei UNC-Pfaden

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    System.IO.File.Exists UND System.IO.Directory.Exists bei UNC-Pfaden

    Moin!

    ich dachte dauerhaft besser mit UNC-Pfaden zu arbeiten als mit Laufwerksbuchstaben und da war dann das Problem!

    UNC-Pfade/Dateien werden alle als nicht vorhanden erkannt.

    Geht UNC da nicht und gibt es vielleicht eine alternative??

    Gruß Jan

    PS: habe learn.microsoft.com/de-de/dotn…path-exists(system-string) gefunden - aber irgendwie wird mir das in vb.net nicht angeboten!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jan99“ ()

    Moin,

    gerade mal getestet (.Net 4.8.1)

    VB.NET-Quellcode

    1. Dim TmpDir As New IO.DirectoryInfo("\\192.168.10.250\Daten\Dokumente")
    2. Dim TmpFile As New IO.FileInfo(IO.Path.Combine(TmpDir.FullName, "Muster.xlsx"))
    3. MessageBox.Show("TmpDir: " & TmpDir.Exists & Cnst.CrLf &
    4. "TmpFile: " & TmpFile.Exists) : Return


    Funktioniert bei mir wie es soll.

    Hast du mal Code für uns?
    Moin!

    danke für die Rückmeldung erst einmal.

    Hier mein Code wobei ConvFullPath der UNC-Pfad ist.

    Beispiel: \\local.ebhl.de\XXX-Daten\Abteilung\XXX\PLNB\GKG\Grundstücke\N\Niendorfer Hauptstraße\

    VB.NET-Quellcode

    1. If System.IO.Directory.Exists(ConvFullPath) = False Then
    2. Console.WriteLine("=> keine Datei und kein Verzeichnis!")
    3. AddCounter(TypeOfCount.Error_PathDef)
    4. '_Log.Write("**** FID: " & Datentabelle.Rows.Item(k).Item("FID").ToString & " - " & PfadName)
    5. _Log.Write("Verzeichnis nicht gefunden wurde:= " & PfadName)
    6. _Log.Write("UNC:= " & ConvFullPath)
    7. SqlString += SqlSeperator & FID.ToString
    8. SqlSeperator = ", "
    9. ''If SetStatusFlag(FID, Data_AttributName, TypeOfStatus.Missing) = False Then AddCounter(TypeOfCount.Unallow_Dialogname) ' fehlerhafter Dateiname
    10. Else
    11. Console.WriteLine("=> VERZEICHNIS vorhanden!")
    12. ''If SetStatusFlag(FID, Data_AttributName, TypeOfStatus.Exists) = False Then AddCounter(TypeOfCount.Unallow_Dialogname) ' Datei vorhanden
    13. End If 'exists dir


    gruß Jan
    Habs bei mir gerade auch mal unter net8 getestet, funktioniert immer noch ohne Probleme.
    Sicher das der Wert in ConvFullPath korrekt ist?

    Edit: Achja und hat der Benutzer, mit dem du den Code ausführst auch das Recht darauf zuzugreifen?