FileSystemWatcher - nur das Änderungsereignis einmal ausgelöst einmal?

Ich verwende den folgenden Code, um auf Änderungsereignisse einer Datei zu warten, die ich von einem Server heruntergeladen und geöffnet habe. Das Änderungsereignis wird jedoch erst ausgelöst, wenn die Datei zum ersten Mal gespeichert wird. Wenn die Datei anschließend gespeichert wird, werden die Änderungsereignisse vom Datei-Watcher nicht ausgelöst.

Kann jemand sehen, was los ist?

private FileSystemWatcher StartWatchingFile()
{
    fw = new FileSystemWatcher();
    fw.Path = this.directoryLocation;
    fw.Filter = this.Filename;

    fw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;

    // Add event handler
    fw.Changed += new FileSystemEventHandler(fw_Changed);

    // Open file        
System.Diagnostics.Process.Start(this.CreateAbsoluteFilePath(this.Filename));

    // Begin watching.
    fw.EnableRaisingEvents = true;

    return fw;
}

//************************  

    void fw_Changed(object sender, FileSystemEventArgs e)
    {
        MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType);
    }

BEARBEITEN: Die Funktion StartWatchingFile () gibt jetzt den Filewatcher zurück, der in einer Klasse gespeichert ist, die nicht überflüssig wird. Nur um sicherzustellen, dass ich die gesamte Klasse so halte, wie gedacht, dass die Funktion fw_changed () möglicherweise nicht aufgerufen werden kann. Die ganze Klasse wird also nicht mehr mit Müll beschickt. Die Klasse befindet sich in einer ArrayList, die ein öffentliches Mitglied einer Klasse ist

Grüße,

Jon

Antworten auf die Frage(2)

Ihre Antwort auf die Frage