FileSystemWatcher.EnableRaisingEvents Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het onderdeel is ingeschakeld.

public:
 property bool EnableRaisingEvents { bool get(); void set(bool value); };
[System.IO.IODescription("FSW_Enabled")]
public bool EnableRaisingEvents { get; set; }
public bool EnableRaisingEvents { get; set; }
[<System.IO.IODescription("FSW_Enabled")>]
member this.EnableRaisingEvents : bool with get, set
member this.EnableRaisingEvents : bool with get, set
Public Property EnableRaisingEvents As Boolean

Waarde van eigenschap

true als het onderdeel is ingeschakeld; anders, false. De standaardwaarde is false. Als u het onderdeel in een ontwerpfunctie in Visual Studio 2005 gebruikt, is de standaardwaarde true.

Kenmerken

Uitzonderingen

Het FileSystemWatcher object is verwijderd.

Het huidige besturingssysteem is niet Microsoft Windows NT of hoger.

De map die is opgegeven in Path , kan niet worden gevonden.

Path is niet ingesteld of is ongeldig.

Voorbeelden

In het volgende voorbeeld wordt een FileSystemWatcher map gemaakt die tijdens de runtime is opgegeven. Het onderdeel is ingesteld om te kijken naar wijzigingen in LastWrite en LastAccess tijd, het maken, verwijderen of hernoemen van tekstbestanden in de map. Als een bestand wordt gewijzigd, gemaakt of verwijderd, wordt het pad naar het bestand afgedrukt naar de console. Wanneer de naam van een bestand wordt gewijzigd, worden de oude en nieuwe paden afgedrukt naar de console.

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

Opmerkingen

Het onderdeel genereert geen gebeurtenissen, tenzij u deze instelt EnableRaisingEvents op true.

Note

Het onderdeel bekijkt de opgegeven map pas als de Path eigenschap is ingesteld en EnableRaisingEvents is true.

Met de WaitForChanged methode kunnen gebeurtenis-handlers worden aangeroepen om te reageren op bestandswijzigingen, zelfs als deze eigenschap is ingesteld op false.

Van toepassing op