FileSystemWatcher Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Прослушивает уведомления об изменении файловой системы и вызывает события, когда каталог или файл в каталоге изменяются.
public ref class FileSystemWatcher : System::ComponentModel::Component, System::ComponentModel::ISupportInitialize
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
[System.IO.IODescription("FileSystemWatcherDesc")]
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
type FileSystemWatcher = class
inherit Component
interface ISupportInitialize
[<System.IO.IODescription("FileSystemWatcherDesc")>]
type FileSystemWatcher = class
inherit Component
interface ISupportInitialize
Public Class FileSystemWatcher
Inherits Component
Implements ISupportInitialize
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается FileSystemWatcher каталог, указанный во время выполнения. Компонент устанавливается для отслеживания изменений и LastWriteLastAccess времени, создания, удаления или переименования текстовых файлов в каталоге. Если файл изменен, создан или удален, путь к файлу выводится в консоль. При переименовании файла старые и новые пути печатаются в консоли.
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
Комментарии
Дополнительные сведения об этом API см. в дополнительных примечаниях API для FileSystemWatcher.
Конструкторы
| Имя | Описание |
|---|---|
| FileSystemWatcher() |
Инициализирует новый экземпляр класса FileSystemWatcher. |
| FileSystemWatcher(String, String) |
Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог и тип файлов для отслеживания. |
| FileSystemWatcher(String) |
Инициализирует новый экземпляр FileSystemWatcher класса, учитывая указанный каталог для мониторинга. |
Свойства
| Имя | Описание |
|---|---|
| CanRaiseEvents |
Возвращает значение, указывающее, может ли компонент вызвать событие. (Унаследовано от Component) |
| Container |
Возвращает объект IContainer , содержащий Componentобъект . (Унаследовано от Component) |
| DesignMode |
Возвращает значение, указывающее, находится ли текущий Component режим разработки. (Унаследовано от Component) |
| EnableRaisingEvents |
Возвращает или задает значение, указывающее, включен ли компонент. |
| Events |
Возвращает список обработчиков событий, подключенных к этому Component. (Унаследовано от Component) |
| Filter |
Возвращает или задает строку фильтра, используемую для определения файлов, отслеживаемых в каталоге. |
| IncludeSubdirectories |
Возвращает или задает значение, указывающее, следует ли отслеживать вложенные каталоги в указанном пути. |
| InternalBufferSize |
Возвращает или задает размер (в байтах) внутреннего буфера. |
| NotifyFilter |
Возвращает или задает тип изменений для отслеживания. |
| Path |
Возвращает или задает путь к каталогу для просмотра. |
| Site |
Возвращает или задает ISite для объекта FileSystemWatcher. |
| SynchronizingObject |
Возвращает или задает объект, используемый для маршалирования вызовов обработчика событий, выданных в результате изменения каталога. |
Методы
| Имя | Описание |
|---|---|
| BeginInit() |
Начинает инициализацию используемого FileSystemWatcher в форме или используемого другим компонентом. Инициализация происходит во время выполнения. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Dispose() |
Освобождает все ресурсы, используемые параметром Component. (Унаследовано от Component) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые FileSystemWatcher и при необходимости освобождает управляемые ресурсы. |
| EndInit() |
Завершает инициализацию используемого FileSystemWatcher в форме или используемого другим компонентом. Инициализация происходит во время выполнения. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetService(Type) |
Возвращает объект, представляющий службу, предоставляемую Component или ее Container. (Унаследовано от Component) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| OnChanged(FileSystemEventArgs) |
Вызывает событие Changed. |
| OnCreated(FileSystemEventArgs) |
Вызывает событие Created. |
| OnDeleted(FileSystemEventArgs) |
Вызывает событие Deleted. |
| OnError(ErrorEventArgs) |
Вызывает событие Error. |
| OnRenamed(RenamedEventArgs) |
Вызывает событие Renamed. |
| ToString() |
String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен. (Унаследовано от Component) |
| WaitForChanged(WatcherChangeTypes, Int32) |
Синхронный метод, возвращающий структуру, содержащую конкретную информацию об изменениях, учитывая тип изменения, которое требуется отслеживать, и время (в миллисекундах) для ожидания до истечения времени ожидания. |
| WaitForChanged(WatcherChangeTypes) |
Синхронный метод, возвращающий структуру, содержащую определенную информацию об изменениях, учитывая тип изменения, которое требуется отслеживать. |
События
| Имя | Описание |
|---|---|
| Changed |
Происходит при изменении файла или каталога в указанном параметре Path . |
| Created |
Происходит при создании файла или каталога в указанном каталоге Path . |
| Deleted |
Происходит при удалении файла или каталога в указанном объекте Path . |
| Disposed |
Происходит при удалении компонента вызовом Dispose() метода. (Унаследовано от Component) |
| Error |
Происходит, когда экземпляр FileSystemWatcher не может продолжать мониторинг изменений или когда внутренний буфер переполнен. |
| Renamed |
Происходит при переименовании файла или каталога в указанном объекте Path . |