FileSystemWatcher.Changed 이벤트

정의

지정된 Path에 있는 파일이나 디렉터리가 변경될 경우에 발생합니다.Occurs when a file or directory in the specified Path is changed.

public:
 event System::IO::FileSystemEventHandler ^ Changed;
public event System.IO.FileSystemEventHandler Changed;
[System.IO.IODescription("FSW_Changed")]
public event System.IO.FileSystemEventHandler Changed;
[System.IO.IODescription("Occurs when a file/directory change matches the filter")]
public event System.IO.FileSystemEventHandler Changed;
member this.Changed : System.IO.FileSystemEventHandler 
[<System.IO.IODescription("FSW_Changed")>]
member this.Changed : System.IO.FileSystemEventHandler 
[<System.IO.IODescription("Occurs when a file/directory change matches the filter")>]
member this.Changed : System.IO.FileSystemEventHandler 
Public Custom Event Changed As FileSystemEventHandler 

이벤트 유형

FileSystemEventHandler
특성

예제

다음 예에서는 이벤트를 사용 하 여 Changed 조사 파일이 변경 될 때마다 콘솔에 대 한 파일 경로를 표시 합니다.The following example uses the Changed event to display the file path to the console whenever the watched file is changed.

#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

설명

Changed모니터링 중인 디렉터리의 파일 또는 디렉터리에 대 한 크기, 시스템 특성, 마지막 쓰기 시간, 마지막 액세스 시간 또는 보안 권한이 변경 되 면 이벤트가 발생 합니다.The Changed event is raised when changes are made to the size, system attributes, last write time, last access time, or security permissions of a file or directory in the directory being monitored.

참고

공통 파일 시스템 작업에서 두 개 이상의 이벤트를 발생 시킬 수 있습니다.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.

NotifyFilter이 이벤트가 처리 될 때 발생 하는 알림 수를 제한 하는 데 사용 합니다.Use NotifyFilter to restrict the number of notifications raised when this event is handled.

참고

Changed이벤트는 파일의 이름을 바꿀 때 예기치 않게 발생 하지만 디렉터리 이름을 바꾸면 발생 하지 않습니다.The Changed event is raised unexpectedly when a file is renamed, but is not raised when a directory is renamed. 이름을 바꾸려면 이벤트를 사용 Renamed 합니다.To watch for renaming, use the Renamed event.

참고

Changed다른 이벤트와 관련 하 여 이벤트가 발생 하는 순서는 FileSystemWatcher 속성이가 아닐 때 변경 될 수 있습니다 SynchronizingObject null .The order in which the Changed event is raised in relation to the other FileSystemWatcher events may change when the SynchronizingObject property is not null.

적용 대상

추가 정보