Feedback

C# - Verzeichnis überwachen mit dem FileSystemWatcher

Veröffentlicht von am 09.07.2006
(1 Bewertungen)
Überwacht das angegebene Verzeichnis mit Hilfe des FileSystemWatcher
FileSystemWatcher FSW;

private void FSW_Initialisieren()
{
    // Filesystemwatcher anlegen
    FSW = new FileSystemWatcher();

    // Pfad und Filter festlegen
    FSW.Path = @"C:\test";
    FSW.Filter = "*.txt";

    // Events definieren
    FSW.Changed += new FileSystemEventHandler(FSW_Changed); 
    FSW.Created += new FileSystemEventHandler(FSW_Created); 
    FSW.Deleted += new FileSystemEventHandler(FSW_Deleted); 
    FSW.Renamed += new RenamedEventHandler(FSW_Renamed);

    // Filesystemwatcher aktivieren
    FSW.EnableRaisingEvents = true;
}

// Handler für alle Events
void FSW_Renamed(object sender, RenamedEventArgs e)
{            
    MessageBox.Show("Umbenannt: " + e.Name);
}

void FSW_Deleted(object sender, FileSystemEventArgs e)
{
    MessageBox.Show("Gelöscht: " + e.Name);
}

void FSW_Created(object sender, FileSystemEventArgs e)
{
    MessageBox.Show("Erstellt: " + e.Name);
}

void FSW_Changed(object sender, FileSystemEventArgs e)
{
    MessageBox.Show("Geändert: " + e.Name);
}

1 Kommentare zum Snippet

Kaya schrieb am 23.11.2009:
Warum kommen mehrere Ereignisse wenn eine Datei im Verzeichnis durch das Kopieren überschrieben wird? Ich habe versucht "FSW.NotifyFilter = NotifyFilters.LastWrite;" zu ändern, hat nichts gebracht. Ich will in einem Verzeichnis festlegen welche Datei geändert wird (Datei wird durch das Kopieren von einem anderen Aplikation überschrieben, Inhalt wird geändert) um anschlieseend diese Datei in einem Thraed weiter zu bearbeiten. Vielen Dank im voraus.
 

Logge dich ein, um hier zu kommentieren!