FileSystemWatcher.Deleted FileSystemWatcher.Deleted FileSystemWatcher.Deleted FileSystemWatcher.Deleted Event

定義

指定した Path のファイルまたはディレクトリが削除されたときに発生します。Occurs when a file or directory in the specified Path is deleted.

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

次の例では、Deletedイベントをウォッチ対象のファイルが削除されたときに、ファイルのパスをコンソールに表示します。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
Imports System.IO
Imports System.Security.Permissions
Imports Microsoft.VisualBasic

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

注釈

ファイルまたはディレクトリにコピーまたは移動など、いくつかの一般的な状況は、イベントに直接対応しないが、これらの出来事が発生します。 イベントを発生しないでください。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. システム ファイルまたはディレクトリをコピーするときに発生させる、Createdそのディレクトリがウォッチされている場合に、ファイルがコピーされたディレクトリ内のイベント。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. コピー元のディレクトリを別のインスタンスで監視対象がかどうかFileSystemWatcherイベントは生成されません。If the directory from which you copied was being watched by another instance of FileSystemWatcher, no event would be raised. たとえば、2 つのインスタンスを作成するFileSystemWatcherします。For example, you create two instances of FileSystemWatcher. FileSystemWatcher1 が見る"C:\My Documents"に設定され、FileSystemWatcher2 が"C:\Your Documents"を見るに設定されます。FileSystemWatcher1 is set to watch "C:\My Documents", and FileSystemWatcher2 is set to watch "C:\Your Documents". マイ ドキュメント"から"Your Documents"にファイルをコピーする場合、Createdイベントが FileSystemWatcher2、によって発生しますが、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. コピーするとは異なりは、ファイルまたはディレクトリを移動すると 2 つのイベントが発生します。Unlike copying, moving a file or directory would raise two events. 「マイ ドキュメント」から"Your Documents"にファイルを移動する場合、前の例から、 Created FileSystemWatcher2 でイベントを発生させると、 Deleted 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.

注意

一般的なファイル システム操作では、1 つ以上のイベントを発生させる可能性があります。Common file system operations might raise more than one event. 別に、いくつかの 1 つのディレクトリからファイルが移動したときになどOnChangedといくつかOnCreatedOnDeletedイベントが発生する可能性があります。For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. 複数のイベントを発生させるため、ファイルが複数の単純な操作で構成される複雑な操作を移動するには。Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. 同様に、一部のアプリケーション (ウイルス対策ソフトウェアなど) がによって検出された追加のファイル システムのイベントを発生可能性がありますFileSystemWatcherします。Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher.

注意

順序、Deleted他の関連イベントが発生したFileSystemWatcherイベント タイミングを変更する可能性があります、SynchronizingObjectプロパティは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.

適用対象

こちらもご覧ください