FileSystemWatcher unter W10 sendet keine Events meht

  • C#

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    FileSystemWatcher unter W10 sendet keine Events meht

    Hi Leute,
    zur Beendigung des Downloads von Dateien überwache ich das Löschen der Hilfsdatei *.part.
    Wenn diese Datei gelöscht wird, ist der Download der kommunizierenden Datei beendet.
    Dies Prozedere hat bis vor ca. 3 Monaten funktioniert.
    Nun sendet der FSW kein Lösch-Event mehr.
    Möglicherweise hat das was zu tun mit dem Update von W10 auf die Version 1709 (16299.192).
    Weiß jemand von Euch Rat?
    Danke.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nein, weder Rat noch Bestätigung. Habe die gleiche Version und konnte mit einem Testprojekt das EventFiring für das Löschen bestätigen:

    Allerdings habe ich die Part-Datei manuell gelöscht. Ich glaube zwar nicht, dass das eine Rolle spielt, aber ich erwähne es mal besser.
    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.
    Auch wenn ich das manuell mache, kommt bei mir kein Event. ;(
    Habs mit VS2013, VS2017, FW4 und FW4.61 getestet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dann mal dieses Testprogramm zum Probieren. Ich bin mir zwar sicher, dass Ihr sowas auch selber schon habt, aber nur zum Vergleich, da es bei mir damit läuft.
    Beim ersten Start wird eine Testdatei auf dem Desktop erstellt ("VaporiZed.part"). Danach beendet sich das Programm.
    Beim 2. Start kann man die Datei löschen lassen und dann springt (bei mir) der FSW an.
    Doppelstart, weil beim Erstellen die Datei vom Projekt in Beschlag genommen wird und nicht gelöscht werden kann. Es gibt bestimmt ne einfache Umgehungsmöglichkeit. Bin für Vorschläge und Tipps offen und dankbar, denn das fände ich sehr hilfreich.

    Möge es jemandem helfen.

    EDIT: @Christoph1972: Auch ein Verschieben ist m.E. intern eine Art von Löschen (Kopieren, danach am Ursprungsort löschen). Der FSW feuert auch da das Deleted-Event.
    Dateien
    • FswTester.zip

      (167,97 kB, 68 mal heruntergeladen, zuletzt: )
    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.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    VaporiZed schrieb:


    EDIT: @Christoph1972: Auch ein Verschieben ist m.E. intern eine Art von Löschen (Kopieren, danach am Ursprungsort löschen). Der FSW feuert auch da das Deleted-Event.


    Also laut des Links springt deleted nicht an - wenn die Daten nach "recycle bin" verschoben werden.
    Gruß
    Christoph
    Bei mir, Windows 10, wird die "part" Datei nicht als gelöscht registriert, sondern die gleichzeitig erstellte mp4 Datei.
    Die Meldungen aus den Ereignissen:

    Geändert: Hagen Rether – Veganer.mp4.part
    Gelöscht: Hagen Rether – Veganer.mp4
    Umbenannt: Hagen Rether – Veganer.mp4
    Geändert: Hagen Rether – Veganer.mp4
    @VaporiZed Vielen Dank für Deine Mühe, Dein Projekt funktioniert.
    Es ist jedoch völlig anders. 8|
    Es hat den Anschein, als hätten die beim Download entstehenden temporären .part-Dateien andere Datei-Eigenschaften.
    Setze ich Dein Programm auf meine Download-Datei, funktioniert es nicht!
    Erstelle ich nach dem Download unter der Kontrolle Deines und meines Programms per Create eine neue Datei dieses Namens und lösche die per Explorer-Befehl, springen alle FSW an.
    Verrückt.
    Ich werd das mal mit nem Timer probieren.
    =========
    Das wird ja immer verrückter.
    Die Datei ist gelöscht, FileInfo.Exists steht auf True, allerdings kommt das Changed-Event mit dem Wert Changed, nicht aber Renamed.
    =======
    Renamed wird gefeuert, wenn .Renamed aboniert wird.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „RodFromGermany“ ()