NotifyFilters Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt Änderungen an, die in einer Datei oder einem Ordner überwacht werden sollen.
Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.
public enum class NotifyFilters
[System.Flags]
public enum NotifyFilters
[<System.Flags>]
type NotifyFilters =
Public Enum NotifyFilters
- Vererbung
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| FileName | 1 | Der Name der Datei. |
| DirectoryName | 2 | Der Name des Verzeichnisses. |
| Attributes | 4 | Die Attribute der Datei oder des Ordners. |
| Size | 8 | Die Größe der Datei oder des Ordners. |
| LastWrite | 16 | Das Datum, an dem die Datei oder der Ordner zuletzt geschrieben wurde. |
| LastAccess | 32 | Das Datum, an dem die Datei oder der Ordner zuletzt geöffnet wurde. |
| CreationTime | 64 | Der Zeitpunkt, zu dem die Datei oder der Ordner erstellt wurde. |
| Security | 256 | Die Sicherheitseinstellungen der Datei oder des Ordners. |
Beispiele
Im folgenden Beispiel wird ein FileSystemWatcher Verzeichnis erstellt, das zur Laufzeit angegeben ist. Die Komponente wird so eingestellt, dass änderungen in LastWrite und LastAccess, erstellung, Löschung oder Umbenennung von Textdateien im Verzeichnis überwacht werden. Wenn eine Datei geändert, erstellt oder gelöscht wird, wird der Pfad zu der Datei in der Konsole gedruckt. Wenn eine Datei umbenannt wird, werden die alten und neuen Pfade in der Konsole gedruckt.
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
Hinweise
Sie können die Member dieser Aufzählung kombinieren, um auf mehrere Arten von Änderungen zu achten. Sie können z. B. auf Änderungen in der Größe einer Datei oder eines Ordners und auf Änderungen in den Sicherheitseinstellungen achten. Dadurch wird ein Ereignis ausgelöst, wenn sich die Größe oder Sicherheitseinstellungen einer Datei oder eines Ordners ändern.