FileSystemWatcher.NotifyFilter Özellik

Tanım

değişiklik türünü için watch alır veya ayarlar.

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

Özellik Değeri

Değerlerden NotifyFilters biri. Varsayılan, bit tabanlı OR birleşimidir LastWrite, , FileNameve DirectoryName.

Öznitelikler

Özel durumlar

Değer, değerlerin geçerli bir bit düzeyinde VEYA bileşimi NotifyFilters değildir.

Ayarlanan değer geçerli değil.

Örnekler

Aşağıdaki örnek, çalışma zamanında belirtilen dizini watch için bir FileSystemWatcher oluşturur. Bileşen, ve LastAccess zamanındaki değişiklikler, dizindeki LastWrite metin dosyalarının oluşturulması, silinmesi veya yeniden adlandırılması için watch olarak ayarlanır. Bir dosya değiştirilir, oluşturulur veya silinirse, dosyanın yolu konsola yazdırılır. Bir dosya yeniden adlandırıldığında, eski ve yeni yollar konsola yazdırılır.

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);
            }
        }
    }
}

Açıklamalar

Bir kerede NotifyFilters birden fazla değişiklik türü için watch için sabit listesi üyelerini birleştirebilirsiniz. Örneğin, bir dosyanın boyutundaki değişiklikler ve zaman içindeki LastWrite değişiklikler için watch. Bu, dosya veya klasör boyutunda bir değişiklik ya da dosya veya klasörün zamanında bir değişiklik LastWrite olduğunda bir olayı tetikler.

Bu, istenmeyen bildirimleri filtrelemenin bir yoludur. İstenmeyen bildirimleri filtreleme hakkında daha fazla bilgi için bkz Filter. , IncludeSubdirectoriesve InternalBufferSize özellikleri.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.