Dateiattribut abfragen

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

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

    Dateiattribut abfragen

    Hallo,

    ich möchte das Dateiattribut einer txt Datei prüfen und wenn die Datei gerade nicht geöffnet ist, soll eine Zeile angehängt werden.

    Leider hab ich es nach unterschiedlichen Versuchen noch nicht hinbekommen.

    Mein letzer Versuch war wie folgt:

    VB.NET-Quellcode

    1. Dim MyAttributes as New FileInfo(AppPfad & "\Protokoll.txt")
    2. If MyAttributes.Attributes And FileAttributes.ReadOnly Then
    3. MsgBox("geöffnet")
    4. Else
    5. MsgBox("geschlossen")
    6. End If


    Es findet einfach keine Erkennung statt. Egal ob ich diese Datei in einem Editor offen habe oder nicht, es kommt keine Unterscheidung zustande.

    Was hab ich falsch gemacht?

    Grüße

    Tiberius
    Hallo

    Korrigiert mich bitte aber das Attribut ReadOnly beschreibt doch nicht das die Datei geöffnet ist.
    Es muss auch nicht sein das eine Datei nicht beschrieben werden kann nur weil diese offen ist. Wenn ein Programm (Visual Studio ist so ein Beispiel) die Datei nicht exklusiv geöffnet hat kann diese von außen dennoch abgeändert werden.

    Der einfachste Weg wäre wohl zu prüfen ob in die Datei geschrieben werden kann. Also einfach versuchen zu schreiben, wenn dies fehlschlägt den Fehler abfangen und schon weis ich das die Datei geöffnet ist.

    Hier ein Beispiel

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    An den DateiAttributen kannst du nicht ablesen, ob eine Datei irgendwo geöffnet ist.
    Bei den meisten Editoren kannst du das überhaupt nicht feststellen: Die öffnen die Datei, lesen ein, schliessen sie wieder, und zeigen das Eingelesene also vollkommen unabhängig an.
    Nur wenige Editoren setzen eine Datei-schreib-sperre, solange sie die Datei offen haben. Sone Schreibsperre wüsste ich nicht, dass die in Attributen oder sonstwie an der Datei notiert wird.
    Stattdessen wird iwas total kompliziertes im DateiSystem-Verwalter geregelt.
    Man kann iwelche fetten Bibliotheken nachladen, und mit AccessControl versuchen, nachzuvollziehen und vorherzusagen, ob ein FileSystem-Zugriff gelingen wird oder nicht.
    Habich mal versucht und aufgegeben.
    Ich mache jetzt einen TryCatch drum, und wenn der eine Exception fängt, hats wohl nicht geklappt.
    Betrifft v.a. die UnauthorisizedAccessException, aber vlt. gibts weitere - muss man im Einzelfall ausprobieren.