none
Aus der MSDN-Hotline: Änderungen an einer Datei überwachen RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,
    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:

    Mein Programm schreibt eine Datei auf die Festplatte, etwa wie hier. Aber wenn ich darauf zugreife, bekomme ich als Größe 0 Bytes angezeigt. Einige Zeit später kann ich die Datei dann erfolgreich lesen, aber die Zeitspanne ist nicht konstant. Wie erfahre ich, wann die Datei fertig geschrieben wurde?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:

    Als erstes müssen wir ausschließen, dass es sich um ein Threading-Problem handelt. (Wir haben Threading bereits diskutiert.) Falls Sie mit mehreren Prozessen oder Threads arbeiten, synchronisieren Sie testhalber alle Threads, die mit der entsprechenden Datei arbeiten.
    Hier liegt das Problem aber wahrscheinlich beim Betriebssystem. Aus Effizienzgründen werden Dateien nicht sofort auf die Festplatte geschrieben, sondern gecachet und erst mit ein wenig Verzögerung verarbeitet. Statt eine feste Wartezeit anzugeben, können Sie mit dem Changed-Ereignis des FileSystemWatchers auf eine Änderung der Dateigröße warten. Mit dem Datei-in-Benutzung-Pattern können Sie von anderen Prozessen aus prüfen, ob die Datei zum lesen/schreiben bereit ist.

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Jonathan Best
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    Montag, 30. August 2010 14:24