J'utilise une application Windows Forms pour surveiller un répertoire et déplacer les fichiers qui s'y trouvent vers un autre répertoire.
Pour le moment, il copie le fichier dans un autre répertoire, mais lorsqu'un autre fichier est ajouté, il se termine simplement sans message d'erreur. Parfois, il copie deux fichiers avant de s'arrêter au troisième.
Est-ce parce que j'utilise une application Windows Form plutôt qu'une application console ? Existe-t-il un moyen d'empêcher le programme de se terminer et de continuer à surveiller le répertoire ?
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();
}