Lire en anglais

Partager via


FileSystemWatcher.NotifyFilter Propriété

Définition

Obtient ou définit le type de modifications à surveiller.

C#
public System.IO.NotifyFilters NotifyFilter { get; set; }
C#
[System.IO.IODescription("FSW_ChangedFilter")]
public System.IO.NotifyFilters NotifyFilter { get; set; }

Valeur de propriété

Une des valeurs de l'objet NotifyFilters. La valeur par défaut est la combinaison OR au niveau du bit de LastWrite, FileName et DirectoryName.

Attributs

Exceptions

La valeur n'est pas une combinaison d'opérations de bits OR valide des valeurs NotifyFilters.

La valeur qui est définie n'est pas valide.

Exemples

L’exemple suivant crée un FileSystemWatcher pour watch le répertoire spécifié au moment de l’exécution. Le composant est défini sur watch pour les modifications dans et LastAccess le LastWrite temps, la création, la suppression ou le renommage des fichiers texte dans le répertoire. Si un fichier est modifié, créé ou supprimé, le chemin d’accès au fichier s’affiche dans la console. Lorsqu’un fichier est renommé, l’ancien et le nouveau chemin d’accès s’impriment sur la console.

C#
using System;
using System.IO;

namespace MyNamespace
{
    class MyClassCS
    {
        static void Main()
        {
            using var watcher = new FileSystemWatcher(@"C:\path\to\folder");

            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;

            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;
            watcher.Renamed += OnRenamed;
            watcher.Error += OnError;

            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;

            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }

        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType != WatcherChangeTypes.Changed)
            {
                return;
            }
            Console.WriteLine($"Changed: {e.FullPath}");
        }

        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            string value = $"Created: {e.FullPath}";
            Console.WriteLine(value);
        }

        private static void OnDeleted(object sender, FileSystemEventArgs e) =>
            Console.WriteLine($"Deleted: {e.FullPath}");

        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed:");
            Console.WriteLine($"    Old: {e.OldFullPath}");
            Console.WriteLine($"    New: {e.FullPath}");
        }

        private static void OnError(object sender, ErrorEventArgs e) =>
            PrintException(e.GetException());

        private static void PrintException(Exception? ex)
        {
            if (ex != null)
            {
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine("Stacktrace:");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();
                PrintException(ex.InnerException);
            }
        }
    }
}

Remarques

Vous pouvez combiner les membres de l’énumération NotifyFilters pour watch pour plusieurs types de modifications à la fois. Par exemple, vous pouvez watch pour les modifications de taille d’un fichier et pour les modifications dans le LastWrite temps. Cela déclenche un événement chaque fois qu’il y a une modification de la taille du fichier ou du dossier, ou une modification de l’heure LastWrite du fichier ou du dossier.

Il s’agit d’une façon de filtrer les notifications indésirables. Pour plus d’informations sur le filtrage des notifications indésirables, consultez les Filterpropriétés , IncludeSubdirectorieset InternalBufferSize .

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Voir aussi