FileSystemWatcher.Deleted 이벤트

정의

지정된 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 
[<System.IO.IODescription("FSW_Deleted")>]
member this.Deleted : System.IO.FileSystemEventHandler 
[<System.IO.IODescription("Occurs when a file/directory deletion matches the filter")>]
member this.Deleted : System.IO.FileSystemEventHandler 
Public Custom Event Deleted As FileSystemEventHandler 

이벤트 유형

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.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

설명

파일이 나 디렉터리를 복사 하거나 이동 하는 등의 몇 가지 일반적인 발생은 이벤트에 직접 대응 되지 않지만 이러한 발생으로 인해 이벤트가 발생 합니다.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. 예를 들어의 인스턴스를 두 개 만듭니다 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". "내 문서"에서 "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. 복사와 달리 파일이 나 디렉터리를 이동 하면 두 개의 이벤트가 발생 합니다.Unlike copying, moving a file or directory would raise two events. 이전 예제에서 파일을 "내 문서"에서 "문서"로 이동한 경우 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.

참고

공통 파일 시스템 작업에서 두 개 이상의 이벤트를 발생 시킬 수 있습니다.Common file system operations might raise more than one event. 예를 들어 한 디렉터리에서 다른 디렉터리로 파일을 이동 하는 경우 몇 가지 및 이벤트를 발생 시킬 수 OnChanged OnCreated OnDeleted 있습니다.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.

적용 대상

추가 정보