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