FileSystemWatcher.Deleted Evento

Definizione

Si verifica all'eliminazione di un file o di una directory nella proprietà Path.Occurs when a file or directory in the specified Path is deleted.

public:
 event System::IO::FileSystemEventHandler ^ Deleted;
public event System.IO.FileSystemEventHandler Deleted;
[System.IO.IODescription("FSW_Deleted")]
public event System.IO.FileSystemEventHandler Deleted;
[System.IO.IODescription("Occurs when a file/directory deletion matches the filter")]
public event System.IO.FileSystemEventHandler Deleted;
member this.Deleted : System.IO.FileSystemEventHandler 
Public Custom Event Deleted As FileSystemEventHandler 
Attributi

Esempio

Nell'esempio seguente viene usato l'evento Deleted per visualizzare il percorso del file alla console ogni volta che il file controllato viene eliminato.The following example uses the Deleted event to display the file path to the console whenever the watched file is deleted.

#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;

public ref class Watcher
{
private:
   // Define the event handlers.
   static void OnChanged( Object^ /*source*/, FileSystemEventArgs^ e )
   {
      // Specify what is done when a file is changed, created, or deleted.
      Console::WriteLine( "File: {0} {1}", e->FullPath, e->ChangeType );
   }

   static void OnRenamed( Object^ /*source*/, RenamedEventArgs^ e )
   {
      // Specify what is done when a file is renamed.
      Console::WriteLine( "File: {0} renamed to {1}", e->OldFullPath, e->FullPath );
   }

public:
   [PermissionSet(SecurityAction::Demand, Name="FullTrust")]
   int static run()
   {
      array<String^>^args = System::Environment::GetCommandLineArgs();

      // If a directory is not specified, exit program.
      if ( args->Length != 2 )
      {
         // Display the proper way to call the program.
         Console::WriteLine( "Usage: Watcher.exe (directory)" );
         return 0;
      }

      // Create a new FileSystemWatcher and set its properties.
      FileSystemWatcher^ watcher = gcnew FileSystemWatcher;
      watcher->Path = args[ 1 ];

      /* Watch for changes in LastAccess and LastWrite times, and 
          the renaming of files or directories. */
      watcher->NotifyFilter = static_cast<NotifyFilters>(NotifyFilters::LastAccess |
            NotifyFilters::LastWrite | NotifyFilters::FileName | NotifyFilters::DirectoryName);

      // Only watch text files.
      watcher->Filter = "*.txt";

      // Add event handlers.
      watcher->Changed += gcnew FileSystemEventHandler( Watcher::OnChanged );
      watcher->Created += gcnew FileSystemEventHandler( Watcher::OnChanged );
      watcher->Deleted += gcnew FileSystemEventHandler( Watcher::OnChanged );
      watcher->Renamed += gcnew RenamedEventHandler( Watcher::OnRenamed );

      // Begin watching.
      watcher->EnableRaisingEvents = true;

      // Wait for the user to quit the program.
      Console::WriteLine( "Press \'q\' to quit the sample." );
      while ( Console::Read() != 'q' );

      return 0;
   }
};

int main() {
   Watcher::run();
}
using System;
using System.IO;
using System.Security.Permissions;

public class Watcher
{
    public static void Main()
    {
        Run();
    }

    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    private static void Run()
    {
        string[] args = Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program.
        if (args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        using (FileSystemWatcher watcher = new FileSystemWatcher())
        {
            watcher.Path = args[1];

            // Watch for changes in LastAccess and LastWrite times, and
            // the renaming of files or directories.
            watcher.NotifyFilter = NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.FileName
                                 | NotifyFilters.DirectoryName;

            // Only watch text files.
            watcher.Filter = "*.txt";

            // Add event handlers.
            watcher.Changed += OnChanged;
            watcher.Created += OnChanged;
            watcher.Deleted += OnChanged;
            watcher.Renamed += OnRenamed;

            // Begin watching.
            watcher.EnableRaisingEvents = true;

            // Wait for the user to quit the program.
            Console.WriteLine("Press 'q' to quit the sample.");
            while (Console.Read() != 'q') ;
        }
    }

    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e) =>
        // Specify what is done when a file is changed, created, or deleted.
        Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");

    private static void OnRenamed(object source, RenamedEventArgs e) =>
        // Specify what is done when a file is renamed.
        Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");
}
Imports System.IO
Imports System.Security.Permissions

Public Class Watcher

    Public Shared Sub Main()

        Run()

    End Sub

    <PermissionSet(SecurityAction.Demand, Name:="FullTrust")>
    Private Shared Sub Run()

        Dim args() As String = Environment.GetCommandLineArgs()

        ' If a directory is not specified, exit the program.
        If args.Length <> 2 Then
            ' Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)")
            Return
        End If

        ' Create a new FileSystemWatcher and set its properties.
        Using watcher As New FileSystemWatcher()
            watcher.Path = args(1)

            ' Watch for changes in LastAccess and LastWrite times, and
            ' the renaming of files or directories. 
            watcher.NotifyFilter = (NotifyFilters.LastAccess _
                                 Or NotifyFilters.LastWrite _
                                 Or NotifyFilters.FileName _
                                 Or NotifyFilters.DirectoryName)

            ' Only watch text files.
            watcher.Filter = "*.txt"

            ' Add event handlers.
            AddHandler watcher.Changed, AddressOf OnChanged
            AddHandler watcher.Created, AddressOf OnChanged
            AddHandler watcher.Deleted, AddressOf OnChanged
            AddHandler watcher.Renamed, AddressOf OnRenamed

            ' Begin watching.
            watcher.EnableRaisingEvents = True

            ' Wait for the user to quit the program.
            Console.WriteLine("Press 'q' to quit the sample.")
            While Chr(Console.Read()) <> "q"c
            End While
        End Using
    End Sub

    ' Define the event handlers.
    Private Shared Sub OnChanged(source As Object, e As FileSystemEventArgs)
        ' Specify what is done when a file is changed, created, or deleted.
        Console.WriteLine($"File: {e.FullPath} {e.ChangeType}")
    End Sub

    Private Shared Sub OnRenamed(source As Object, e As RenamedEventArgs)
        ' Specify what is done when a file is renamed.
        Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}")
    End Sub

End Class

Commenti

Alcune occorrenze comuni, ad esempio la copia o lo trasferimento di un file o di una directory, non corrispondono direttamente a un evento, ma queste occorrenze generano eventi.Some common occurrences, such as copying or moving a file or directory, do not correspond directly to an event, but these occurrences do cause events to be raised. Quando si copia un file o una directory, il sistema genera un evento Created nella directory in cui è stato copiato il file, se tale directory viene controllata.When you copy a file or directory, the system raises a Created event in the directory to which the file was copied, if that directory is being watched. Se la directory da cui è stata eseguita la copia è stata controllata da un'altra istanza di FileSystemWatcher, non verrà generato alcun evento.If the directory from which you copied was being watched by another instance of FileSystemWatcher, no event would be raised. Ad esempio, si creano due istanze di FileSystemWatcher.For example, you create two instances of FileSystemWatcher. FileSystemWatcher1 è impostato per controllare "documenti C:\My" e FileSystemWatcher2 è impostato su "C:\Your Documents".FileSystemWatcher1 is set to watch "C:\My Documents", and FileSystemWatcher2 is set to watch "C:\Your Documents". Se si copia un file da "documenti" in "documenti", verrà generato un evento Created da FileSystemWatcher2, ma non viene generato alcun evento per FileSystemWatcher1.If you copy a file from "My Documents" into "Your Documents", a Created event will be raised by FileSystemWatcher2, but no event is raised for FileSystemWatcher1. A differenza della copia, lo spostare un file o una directory genera due eventi.Unlike copying, moving a file or directory would raise two events. Dall'esempio precedente, se è stato spostato un file da "documenti" a "documenti", un evento Created viene generato da FileSystemWatcher2 e viene generato un evento Deleted da FileSystemWatcher1.From the previous example, if you moved a file from "My Documents" to "Your Documents", a Created event would be raised by FileSystemWatcher2 and a Deleted event would be raised by FileSystemWatcher1.

Nota

Le operazioni comuni di file system possono generare più di un evento.Common file system operations might raise more than one event. Ad esempio, quando un file viene spostato da una directory a un'altra, è possibile che vengano generati diversi OnChanged e alcuni eventi OnCreated e OnDeleted.For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Lo stato di un file è un'operazione complessa costituita da più semplici operazioni, che pertanto generano più eventi.Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Analogamente, alcune applicazioni (ad esempio, il software antivirus) potrebbero causare eventi file system aggiuntivi rilevati da FileSystemWatcher.Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher.

Nota

L'ordine in cui viene generato l'evento Deleted in relazione agli altri eventi FileSystemWatcher può cambiare quando la proprietà SynchronizingObject non è null.The order in which the Deleted event is raised in relation to the other FileSystemWatcher events may change when the SynchronizingObject property is not null.

Si applica a

Vedi anche