FileSystemWatcher.Deleted Gebeurtenis

Definitie

Treedt op wanneer een bestand of map in de opgegeven Path map wordt verwijderd.

public:
 event System::IO::FileSystemEventHandler ^ Deleted;
[System.IO.IODescription("FSW_Deleted")]
public event System.IO.FileSystemEventHandler Deleted;
public event System.IO.FileSystemEventHandler Deleted;
[<System.IO.IODescription("FSW_Deleted")>]
member this.Deleted : System.IO.FileSystemEventHandler 
member this.Deleted : System.IO.FileSystemEventHandler 
Public Custom Event Deleted As FileSystemEventHandler 

Gebeurtenistype

Kenmerken

Voorbeelden

In het volgende voorbeeld wordt de Deleted gebeurtenis gebruikt om het bestandspad naar de console weer te geven wanneer het gevolgde bestand wordt verwijderd.

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

Sommige veelvoorkomende gebeurtenissen, zoals het kopiëren of verplaatsen van een bestand of map, komen niet rechtstreeks overeen met een gebeurtenis, maar deze gebeurtenissen zorgen ervoor dat gebeurtenissen worden gegenereerd. Wanneer u een bestand of map kopieert, genereert het systeem een Created gebeurtenis in de map waarnaar het bestand is gekopieerd, als die map wordt bekeken. Als de map van waaruit u hebt gekopieerd, door een ander exemplaar FileSystemWatcherwordt bekeken, wordt er geen gebeurtenis gegenereerd. U maakt bijvoorbeeld twee exemplaren van FileSystemWatcher. FileSystemWatcher1 is ingesteld om 'C:\Mijn documenten' te bekijken en FileSystemWatcher2 is ingesteld op 'C:\Your Documents'. Als u een bestand kopieert van 'Mijn documenten' naar 'Uw documenten', wordt er een Created gebeurtenis gegenereerd door FileSystemWatcher2, maar er wordt geen gebeurtenis gegenereerd voor FileSystemWatcher1. In tegenstelling tot kopiëren zou het verplaatsen van een bestand of map twee gebeurtenissen veroorzaken. Als u in het vorige voorbeeld een bestand hebt verplaatst van Mijn documenten naar Uw documenten, wordt er een Created gebeurtenis gegenereerd door FileSystemWatcher2 en wordt er een Deleted gebeurtenis gegenereerd door FileSystemWatcher1.

Note

Veelvoorkomende bestandssysteembewerkingen kunnen meerdere gebeurtenissen veroorzaken. Wanneer een bestand bijvoorbeeld van de ene map naar de andere wordt verplaatst, kunnen er meerdere OnChanged en enkele OnCreated gebeurtenissen OnDeleted worden gegenereerd. Het verplaatsen van een bestand is een complexe bewerking die bestaat uit meerdere eenvoudige bewerkingen, waardoor meerdere gebeurtenissen worden gegenereerd. Op dezelfde manier kunnen sommige toepassingen (bijvoorbeeld antivirussoftware) aanvullende bestandssysteem-gebeurtenissen veroorzaken die worden gedetecteerd door FileSystemWatcher.

Note

De volgorde waarin de Deleted gebeurtenis wordt gegenereerd ten opzichte van de andere FileSystemWatcher gebeurtenissen, kan veranderen wanneer de SynchronizingObject eigenschap niet nullis.

Van toepassing op

Zie ook