Ich verwende eine Windows Forms-Anwendung, um ein Verzeichnis zu überwachen und die darin abgelegten Dateien in ein anderes Verzeichnis zu verschieben.
Im Moment wird die Datei in ein anderes Verzeichnis kopiert, aber wenn eine andere Datei hinzugefügt wird, endet sie einfach ohne Fehlermeldung. Manchmal werden zwei Dateien kopiert, bevor die dritte endet.
Liegt das daran, dass ich eine Windows Form-Anwendung anstelle einer Konsolenanwendung verwende? Gibt es eine Möglichkeit, das Beenden des Programms zu stoppen und das Verzeichnis weiter zu überwachen?
private void watch()
{
this.watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
public void Dispose()
{
// avoiding resource leak
watcher.Changed -= OnChanged;
this.watcher.Dispose();
}