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é ");
}
Filewatcher

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

Auteur : Daniel MINKO FASSINOU

Laisser un commentaire




Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.