Ordner existiert nicht im Netzwerk; mehrere Ursachen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Haudruferzappeltnoch.

    Ordner existiert nicht im Netzwerk; mehrere Ursachen

    Hallo,

    Mit DirectoryInfo.Exists bekomme ich False sowohl, wenn der Ordner nicht existiert als auch, wenn er nicht erreichbar ist.
    Ich dachte da kommt vielleicht eine Exception stattdessen.
    Was würdet ihr machen, wenn ihr diese beiden Fälle unterscheiden müsst?

    Viele Grüße
    Sind das nicht 2 verschiedene Ursachen?
    Das eine ist das er einfach nicht existiert und das andere liegt doch dann am Netzwerk, wenn er nicht erreichbar ist.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Dass es dabei keine Exception wirft, ist tatsächlich interessant.
    Da müsste man vielleicht eine Funktion, besser noch eine Erweiterung für IO.DirectoryInfo, erstellen, welche zuerst prüft (Ping o.ä.) ob der Server (\\SERVER\) erreichbar ist oder nicht.

    Hab es selber kurz getestet, IO.DirectoryInfo.Exists läuft in einen 30 Sekunden Timeout und gibt False, wenn man einen UNC Pfad abfragt der nicht erreichbar oder gar nicht vorhanden ist.
    Eine Exception wird nicht ausgelöst, gibt aber dann False (was auch richtig ist) zurück.

    Willst du denn, dass eine Exception ausgelöst wird, wenn der Server nicht erreichbar ist?
    Ich habe keine Ahnung ob das die richtige Wahl ist. Aber wenn dann bitte learn.microsoft.com/de-de/dotn…_Ping_Send_System_String_
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Also du sagst damit aber ganz klar, dass es nicht die richtige Wahl ist.^^

    Leider hab ich noch ein weiteres Problem mit DirectoryInfo.Exists. Das bleibt einfach True solange das Programm läuft, selbst wenn ich den Ordnern lösche und er definitv nicht mehr existiert.

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

    Dann habe ich mich falsch ausgedrückt.
    Ich hatte den link gepostet weil du den My namspace nutzt. Der link beinhaltet die Alternative.

    poste doch bitte mal Code zu deinem Problem.
    Ich selbst habe mit Netzwerken noch nicht gearbeitet, daher kenne ich keine möglichen Fehler. Vielleicht aber kann ich es mit Code nachbauen und helfen.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Was passiert, wenn Du damit arbeitest:

    VB.NET-Quellcode

    1. Dim DateiExistiert = New IO.FileInfo(PfadZurNetzwerkdatei).Exists
    2. 'bzw.
    3. Dim VerzeichnisExistiert = New IO.DirectoryInfo(PfadZumNetzwerkverzeichnis).Exists

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ok ich habs wohl gefunden.

    VB.NET-Quellcode

    1. 'Loop alle 5 Sekunden
    2. Dim a = New DirectoryInfo("I:\Directory2")
    3. If a.Exists Then
    4. End If
    5. Dim b = New FileInfo("I:\Directory2\data.txt")
    6. If b.Exists Then
    7. End If
    8. '

    a.Exists = b.Exists = True. Ordner löschen. a.Exists = True, b.Exists = False

    Beim Start sind a und b - .Exists sich immer einig.
    mache ich vor jedem a.Exists noch a.Refresh, dann wird a.Exists auch endlich False.
    Scheinbar refreshed FileInfo automatisch?