
Dot net nous permet de surveiller les modifications effectuées dans un dossier. Par modifications, j’entends création, suppression, renommage, modification… d’un fichier ou d’un sous-dossier contenu dans le dossier. Pour y parvenir, on utilise la classe FileSystemWatcher du namespace System.IO. Voyons comment ça marche
FileSystemWatcher surveille les changements effectués sur un dossier particulier. On crée un nouveau FileSystemWatcher, on fixe le dossier à surveiller.
fsWatch = new FileSystemWatcher();
fsWatch.Path = @"C:\TMP\folder";
fsWatch.IncludeSubdirectories = true;
fsWatch.EnableRaisingEvents = true;
IncludeSubdirectories nous permet de définir si l’on veut surveiller également les sous dossier et EnableRaisingEvents active le composant.
Ensuite, il faut assigner des méthodes qui géreront les événements Changed, Created, Deleted, Renamed.
fsWatch.Changed += FsWatch_Changed;
fsWatch.Created += FsWatch_Created;
fsWatch.Deleted += FsWatch_Deleted;
fsWatch.Renamed += FsWatch_Renamed;
Les méthodes correspondantes sont
private static void FsWatch_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"Fichier {e.OldName} renommé {e.Name}");
}
private static void FsWatch_Deleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Fichier {e.Name} supprimé");
}
private static void FsWatch_Created(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Fichier {e.Name} créé");
}
private static void FsWatch_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"Fichier {e.Name} modifié ");
}

FilesystemWatcher propose d’autres fonctionnalités comme les filtres pour choisir quels changements surveiller. A vous de l’explorer pour en découvrir plus…
Image by OpenClipart-Vectors from Pixabay
Laisser un commentaire