FileSystemWatcher Classe

Definição

Escuta as notificações de alteração do sistema de ficheiros e gera eventos quando um diretório, ou ficheiro num diretório, muda.

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
Herança
FileSystemWatcher
Atributos
Implementações

Exemplos

O exemplo seguinte cria um FileSystemWatcher para observar o diretório especificado em tempo de execução. O componente está configurado para observar alterações no LastWrite tempo LastAccess , criação, eliminação ou renomeação de ficheiros de texto no diretório. Se um ficheiro for alterado, criado ou eliminado, o caminho para o ficheiro é impresso para a consola. Quando um ficheiro é renomeado, os caminhos antigo e novo são impressos na consola.

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

Observações

Para mais informações sobre esta API, consulte Observações suplementares da API para o FileSystemWatcher.

Construtores

Name Description
FileSystemWatcher()

Inicializa uma nova instância da FileSystemWatcher classe.

FileSystemWatcher(String, String)

Inicializa uma nova instância da FileSystemWatcher classe, dado o diretório especificado e o tipo de ficheiros a monitorizar.

FileSystemWatcher(String)

Inicializa uma nova instância da FileSystemWatcher classe, dado o diretório especificado para monitorizar.

Propriedades

Name Description
CanRaiseEvents

Obtém um valor que indica se o componente pode gerar um evento.

(Herdado de Component)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
DesignMode

Obtém um valor que indica se o Component está atualmente em modo de design.

(Herdado de Component)
EnableRaisingEvents

Recebe ou define um valor que indica se o componente está ativado.

Events

Obtém a lista de gestores de eventos que estão ligados a isto Component.

(Herdado de Component)
Filter

Obtém ou define a cadeia de filtro usada para determinar que ficheiros são monitorizados num diretório.

IncludeSubdirectories

Recebe ou define um valor que indica se os subdiretórios dentro do caminho especificado devem ser monitorizados.

InternalBufferSize

Obtém ou define o tamanho (em bytes) do buffer interno.

NotifyFilter

Obtém ou define o tipo de alterações a observar.

Path

Obtém ou define o caminho do diretório para observar.

Site

Obtém ou define um ISite para o FileSystemWatcher.

SynchronizingObject

Obtém ou define o objeto usado para marshalar as chamadas de gestor de eventos emitidas como resultado de uma alteração de diretório.

Métodos

Name Description
BeginInit()

Inicia a inicialização de um FileSystemWatcher usado num formulário ou usado por outro componente. A inicialização ocorre em tempo de execução.

CreateObjRef(Type)

Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Liberta todos os recursos utilizados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo FileSystemWatcher e opcionalmente liberta os recursos geridos.

EndInit()

Termina a inicialização de um FileSystemWatcher usado num formulário ou usado por outro componente. A inicialização ocorre em tempo de execução.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso.

(Herdado de MarshalByRefObject)
GetService(Type)

Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
OnChanged(FileSystemEventArgs)

Eleva o Changed evento.

OnCreated(FileSystemEventArgs)

Eleva o Created evento.

OnDeleted(FileSystemEventArgs)

Eleva o Deleted evento.

OnError(ErrorEventArgs)

Eleva o Error evento.

OnRenamed(RenamedEventArgs)

Eleva o Renamed evento.

ToString()

Devolve a String contendo o nome do Component, se existir. Este método não deve ser ultrapassado.

(Herdado de Component)
WaitForChanged(WatcherChangeTypes, Int32)

Um método síncrono que devolve uma estrutura que contém informação específica sobre a alteração que ocorreu, dado o tipo de alteração que pretende monitorizar e o tempo (em milissegundos) para esperar antes de expirar.

WaitForChanged(WatcherChangeTypes)

Um método síncrono que devolve uma estrutura que contém informação específica sobre a alteração que ocorreu, dado o tipo de alteração que pretende monitorizar.

evento

Name Description
Changed

Ocorre quando um ficheiro ou diretório no especificado Path é alterado.

Created

Ocorre quando um ficheiro ou diretório no especificado Path é criado.

Deleted

Ocorre quando um ficheiro ou diretório no especificado Path é eliminado.

Disposed

Ocorre quando o componente é eliminado por uma chamada ao Dispose() método.

(Herdado de Component)
Error

Ocorre quando a instância de FileSystemWatcher não consegue continuar a monitorizar alterações ou quando o buffer interno transborda.

Renamed

Ocorre quando um ficheiro ou diretório no especificado Path é renomeado.

Aplica-se a

Ver também