Číst v angličtině

Sdílet prostřednictvím


NotifyFilters Výčet

Definice

Určuje změny watch v souboru nebo složce.

Tento výčet podporuje bitové kombinace hodnot jeho členů.

[System.Flags]
public enum NotifyFilters
Dědičnost
NotifyFilters
Atributy

Pole

Name Hodnota Description
Attributes 4

Atributy souboru nebo složky.

CreationTime 64

Čas vytvoření souboru nebo složky.

DirectoryName 2

Název adresáře.

FileName 1

Název souboru.

LastAccess 32

Datum posledního otevření souboru nebo složky.

LastWrite 16

Datum, kdy se do souboru nebo složky naposledy něco zapsalo.

Security 256

Nastavení zabezpečení souboru nebo složky.

Size 8

Velikost souboru nebo složky.

Příklady

Následující příklad vytvoří FileSystemWatcher watch adresář, který je zadán za běhu. Komponenta je nastavená na watch pro všechny změny v čase LastWrite a LastAccess, vytváření, odstranění nebo přejmenování textových souborů v adresáři. Pokud se soubor změní, vytvoří nebo odstraní, cesta k souboru se vytiskne do konzoly. Při přejmenování souboru se staré a nové cesty vytisknou do konzoly.

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

Poznámky

Členy tohoto výčtu můžete zkombinovat do watch pro více než jeden druh změn. Můžete například watch pro změny velikosti souboru nebo složky a pro změny v nastavení zabezpečení. To vyvolá událost vždy, když dojde ke změně velikosti nebo nastavení zabezpečení souboru nebo složky.

Platí pro

Produkt Verze
.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

Viz také