Ich verwende eine Windows Forms-Anwendung, um ein Verzeichnis zu überwachen und die darin enthaltenen Dateien in ein anderes Verzeichnis zu verschieben.Verwenden von FileSystemWatcher zum Überwachen eines Verzeichnisses
Im Moment wird es die Datei in ein anderes Verzeichnis kopieren, aber wenn eine andere Datei hinzugefügt wird, wird es einfach mit keiner Fehlermeldung enden. Manchmal kopiert es zwei Dateien, bevor es auf der dritten endet.
Liegt das daran, dass ich eine Windows Form-Anwendung anstelle einer Konsolen-App verwende? Gibt es eine Möglichkeit, das Beenden des Programms zu stoppen und das Verzeichnis weiter zu verfolgen?
private void watch()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
'Watcher' Variable wird am Leben gehalten (nicht Müll gesammelt), weil er Changed Event abonniert hat. – adospace