Поделиться через


FileSystemWatcher Конструкторы

Определение

Инициализирует новый экземпляр класса FileSystemWatcher.

Перегрузки

Имя Описание
FileSystemWatcher()

Инициализирует новый экземпляр класса FileSystemWatcher.

FileSystemWatcher(String)

Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог для мониторинга.

FileSystemWatcher(String, String)

Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог и тип файлов для отслеживания.

FileSystemWatcher()

Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs

Инициализирует новый экземпляр класса FileSystemWatcher.

public:
 FileSystemWatcher();
public FileSystemWatcher();
Public Sub New ()

Примеры

В следующем примере создается FileSystemWatcher объект для просмотра каталога, указанного во время выполнения. Объект FileSystemWatcher следит за изменениями и LastWriteLastAccess временем, а также для создания, удаления или переименования текстовых файлов в каталоге. Если файл изменен, создан или удален, путь к файлу отображается в консоли. При переименовании файла старые и новые пути отображаются в консоли.

В этом примере используются System.Diagnostics пространства имен и System.IO пространства имен.

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);
            }
        }
    }
}
Imports System.IO

Namespace MyNamespace

    Class MyClassVB

        Shared Sub Main()
            Using watcher = New FileSystemWatcher("C:\path\to\folder")
                watcher.NotifyFilter = NotifyFilters.Attributes Or
                                       NotifyFilters.CreationTime Or
                                       NotifyFilters.DirectoryName Or
                                       NotifyFilters.FileName Or
                                       NotifyFilters.LastAccess Or
                                       NotifyFilters.LastWrite Or
                                       NotifyFilters.Security Or
                                       NotifyFilters.Size

                AddHandler watcher.Changed, AddressOf OnChanged
                AddHandler watcher.Created, AddressOf OnCreated
                AddHandler watcher.Deleted, AddressOf OnDeleted
                AddHandler watcher.Renamed, AddressOf OnRenamed
                AddHandler watcher.Error, AddressOf OnError

                watcher.Filter = "*.txt"
                watcher.IncludeSubdirectories = True
                watcher.EnableRaisingEvents = True

                Console.WriteLine("Press enter to exit.")
                Console.ReadLine()
            End Using
        End Sub

        Private Shared Sub OnChanged(sender As Object, e As FileSystemEventArgs)
            If e.ChangeType <> WatcherChangeTypes.Changed Then
                Return
            End If
            Console.WriteLine($"Changed: {e.FullPath}")
        End Sub

        Private Shared Sub OnCreated(sender As Object, e As FileSystemEventArgs)
            Dim value As String = $"Created: {e.FullPath}"
            Console.WriteLine(value)
        End Sub

        Private Shared Sub OnDeleted(sender As Object, e As FileSystemEventArgs)
            Console.WriteLine($"Deleted: {e.FullPath}")
        End Sub

        Private Shared Sub OnRenamed(sender As Object, e As RenamedEventArgs)
            Console.WriteLine($"Renamed:")
            Console.WriteLine($"    Old: {e.OldFullPath}")
            Console.WriteLine($"    New: {e.FullPath}")
        End Sub

        Private Shared Sub OnError(sender As Object, e As ErrorEventArgs)
            PrintException(e.GetException())
        End Sub

        Private Shared Sub PrintException(ex As Exception)
            If ex IsNot Nothing Then
                Console.WriteLine($"Message: {ex.Message}")
                Console.WriteLine("Stacktrace:")
                Console.WriteLine(ex.StackTrace)
                Console.WriteLine()
                PrintException(ex.InnerException)
            End If
        End Sub

    End Class

End Namespace

Комментарии

Вы не можете просматривать удаленный компьютер, у которых нет Windows NT или Windows 2000. Вы не можете просматривать удаленный компьютер Windows NT 4.0 с компьютера Windows NT 4.0.

В следующей таблице показаны начальные значения свойств для экземпляра FileSystemWatcher.

Недвижимость Начальное значение
NotifyFilter битовая комбинация LastWriteOR , FileNameи DirectoryName
EnableRaisingEvents false
Filter "*.*" (Просмотрите все файлы.)
IncludeSubdirectories false
InternalBufferSize 8192
Path пустая строка ("")

Замечание

Компонент не будет отслеживать указанный каталог до тех пор, пока Path не будет задано значение.EnableRaisingEventstrue

См. также раздел

Применяется к

FileSystemWatcher(String)

Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs

Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог для мониторинга.

public:
 FileSystemWatcher(System::String ^ path);
public FileSystemWatcher(string path);
new System.IO.FileSystemWatcher : string -> System.IO.FileSystemWatcher
Public Sub New (path As String)

Параметры

path
String

Каталог для отслеживания стандартной или универсальной нотации об именовании (UNC).

Исключения

Параметр path имеет значение null.

Параметр path является пустой строкой ("").

–или–

Путь, указанный path через параметр, не существует.

path слишком длинный.

Комментарии

Замечание

Компонент не будет отслеживать указанный каталог до тех пор, пока Path не будет задано значение.EnableRaisingEventstrue

Компонент может просматривать файлы на личном компьютере, сетевом диске или удаленном компьютере.

Вы не можете просматривать удаленный компьютер, у которых нет Windows NT или Windows 2000. Вы не можете просматривать удаленный компьютер Windows NT 4.0 с компьютера Windows NT 4.0. Свойство Filter по умолчанию устанавливается для просмотра всех файлов.

См. также раздел

Применяется к

FileSystemWatcher(String, String)

Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs
Исходный код:
FileSystemWatcher.cs

Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог и тип файлов для отслеживания.

public:
 FileSystemWatcher(System::String ^ path, System::String ^ filter);
public FileSystemWatcher(string path, string filter);
new System.IO.FileSystemWatcher : string * string -> System.IO.FileSystemWatcher
Public Sub New (path As String, filter As String)

Параметры

path
String

Каталог для отслеживания стандартной или универсальной нотации об именовании (UNC).

filter
String

Тип отслеживаемых файлов. Например, "*.txt" следит за изменениями во всех текстовых файлах.

Исключения

Параметр path имеет значение null.

–или–

Параметр filter имеет значение null.

Параметр path является пустой строкой ("").

–или–

Путь, указанный path через параметр, не существует.

path слишком длинный.

Комментарии

Замечание

Компонент не будет отслеживать указанный каталог до тех пор, пока Path не будет задано значение.EnableRaisingEventstrue

Компонент может просматривать файлы на личном компьютере, сетевом диске или удаленном компьютере.

Вы не можете просматривать удаленный компьютер, у которых нет Windows NT или Windows 2000. Вы не можете просматривать удаленный компьютер Windows NT 4.0 с компьютера Windows NT 4.0.

См. также раздел

Применяется к