FileSystemWatcher Klasa

Definicja

Nasłuchuje powiadomień o zmianie systemu plików i zgłasza zdarzenia w przypadku zmiany katalogu lub pliku w katalogu.

C#
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
C#
public class FileSystemWatcher : IDisposable
C#
[System.IO.IODescription("FileSystemWatcherDesc")]
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
Dziedziczenie
FileSystemWatcher
Dziedziczenie
FileSystemWatcher
Atrybuty
Implementuje

Przykłady

Poniższy przykład tworzy obiekt w FileSystemWatcher celu watch katalogu określonego w czasie wykonywania. Składnik jest ustawiony na watch zmian w LastWrite czasieLastAccess, utworzeniu, usunięciu lub zmianie nazwy plików tekstowych w katalogu. Jeśli plik zostanie zmieniony, utworzony lub usunięty, ścieżka do pliku zostanie wyświetlona w konsoli programu . Po zmianie nazwy pliku stare i nowe ścieżki są drukowane w konsoli programu .

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

Uwagi

Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Uwagi dotyczące dodatkowego interfejsu API dla elementu FileSystemWatcher.

Konstruktory

FileSystemWatcher()

Inicjuje nowe wystąpienie klasy FileSystemWatcher.

FileSystemWatcher(String)

Inicjuje FileSystemWatcher nowe wystąpienie klasy, biorąc pod uwagę określony katalog do monitorowania.

FileSystemWatcher(String, String)

Inicjuje FileSystemWatcher nowe wystąpienie klasy, biorąc pod uwagę określony katalog i typ plików do monitorowania.

Właściwości

CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.

(Odziedziczone po Component)
Container

Pobiera element IContainer zawierający element Component.

(Odziedziczone po Component)
DesignMode

Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania.

(Odziedziczone po Component)
EnableRaisingEvents

Pobiera lub ustawia wartość wskazującą, czy składnik jest włączony.

Events

Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu .

(Odziedziczone po Component)
Filter

Pobiera lub ustawia ciąg filtru używany do określania, które pliki są monitorowane w katalogu.

Filters

Pobiera kolekcję wszystkich filtrów używanych do określenia, które pliki są monitorowane w katalogu.

IncludeSubdirectories

Pobiera lub ustawia wartość wskazującą, czy podkatalogi w określonej ścieżce powinny być monitorowane.

InternalBufferSize

Pobiera lub ustawia rozmiar (w bajtach) buforu wewnętrznego.

NotifyFilter

Pobiera lub ustawia typ zmian watch dla.

Path

Pobiera lub ustawia ścieżkę katalogu do watch.

Site

Pobiera lub ustawia element ISite dla elementu FileSystemWatcher.

SynchronizingObject

Pobiera lub ustawia obiekt używany do marshalowania wywołań programu obsługi zdarzeń wystawionych w wyniku zmiany katalogu.

Metody

BeginInit()

Rozpoczyna inicjowanie elementu używanego FileSystemWatcher w formularzu lub używanego przez inny składnik. Inicjowanie odbywa się w czasie wykonywania.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia niezarządzane zasoby używane przez FileSystemWatcherprogram .

Dispose()

Zwalnia wszelkie zasoby używane przez element Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element FileSystemWatcher i opcjonalnie zwalnia zasoby zarządzane.

EndInit()

Kończy inicjowanie elementu używanego FileSystemWatcher w formularzu lub używane przez inny składnik. Inicjowanie odbywa się w czasie wykonywania.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetService(Type)

Zwraca obiekt reprezentujący usługę dostarczaną przez Component obiekt lub przez obiekt Container.

(Odziedziczone po Component)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
OnChanged(FileSystemEventArgs)

Changed Zgłasza zdarzenie.

OnCreated(FileSystemEventArgs)

Created Zgłasza zdarzenie.

OnDeleted(FileSystemEventArgs)

Deleted Zgłasza zdarzenie.

OnError(ErrorEventArgs)

Error Zgłasza zdarzenie.

OnRenamed(RenamedEventArgs)

Renamed Zgłasza zdarzenie.

ToString()

Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana.

(Odziedziczone po Component)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WaitForChanged(WatcherChangeTypes)

Metoda synchroniczna, która zwraca strukturę zawierającą określone informacje o zmianie, która wystąpiła, biorąc pod uwagę typ zmiany, którą chcesz monitorować.

WaitForChanged(WatcherChangeTypes, Int32)

Metoda synchroniczna, która zwraca strukturę zawierającą określone informacje na temat zmiany, biorąc pod uwagę typ zmiany, którą chcesz monitorować, oraz czas oczekiwania (w milisekundach) przed przekroczeniem limitu czasu.

WaitForChanged(WatcherChangeTypes, TimeSpan)

Synchronicznie zwraca strukturę zawierającą określone informacje o zmianie, która wystąpiła, biorąc pod uwagę typ zmiany do monitorowania.

Zdarzenia

Changed

Występuje, gdy plik lub katalog w określonym pliku Path zostanie zmieniony.

Created

Występuje po utworzeniu pliku lub katalogu w określonym Path obiekcie.

Deleted

Występuje, gdy plik lub katalog w określonym pliku Path zostanie usunięty.

Disposed

Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody .

(Odziedziczone po Component)
Error

Występuje, gdy wystąpienie nie FileSystemWatcher może kontynuować monitorowania zmian lub gdy wewnętrzne przepełnienie buforu.

Renamed

Występuje, gdy nazwa pliku lub katalogu w określonym pliku Path jest zmieniana.

Dotyczy

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

Zobacz też