FileSystemWatcher 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파일 시스템 변경 알림을 수신하면서 디렉터리 또는 디렉터리의 파일이 변경되면 이벤트를 발생시킵니다.
public ref class FileSystemWatcher : System::ComponentModel::Component, System::ComponentModel::ISupportInitialize
public ref class FileSystemWatcher : IDisposable
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
public class FileSystemWatcher : IDisposable
[System.IO.IODescription("FileSystemWatcherDesc")]
public class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
type FileSystemWatcher = class
inherit Component
interface ISupportInitialize
type FileSystemWatcher = class
interface IDisposable
[<System.IO.IODescription("FileSystemWatcherDesc")>]
type FileSystemWatcher = class
inherit Component
interface ISupportInitialize
Public Class FileSystemWatcher
Inherits Component
Implements ISupportInitialize
Public Class FileSystemWatcher
Implements IDisposable
- 상속
- 상속
-
FileSystemWatcher
- 특성
- 구현
예제
다음 예제에서는 를 만들어 FileSystemWatcher 런타임에 지정된 디렉터리를 watch. 구성 요소는 디렉터리에서 LastWrite
텍스트 파일의 생성, 삭제 또는 이름 바꾸기 및 LastAccess
시간 변경에 대해 watch 설정됩니다. 파일이 변경, 생성 또는 삭제되면 파일 경로가 콘솔에 출력됩니다. 파일 이름을 바꾸면 이전 경로와 새 경로가 콘솔에 인쇄됩니다.
#include "pch.h"
using namespace System;
using namespace System::IO;
class MyClassCPP
{
public:
int static Run()
{
FileSystemWatcher^ watcher = gcnew FileSystemWatcher("C:\\path\\to\\folder");
watcher->NotifyFilter = static_cast<NotifyFilters>(NotifyFilters::Attributes
| NotifyFilters::CreationTime
| NotifyFilters::DirectoryName
| NotifyFilters::FileName
| NotifyFilters::LastAccess
| NotifyFilters::LastWrite
| NotifyFilters::Security
| NotifyFilters::Size);
watcher->Changed += gcnew FileSystemEventHandler(MyClassCPP::OnChanged);
watcher->Created += gcnew FileSystemEventHandler(MyClassCPP::OnCreated);
watcher->Deleted += gcnew FileSystemEventHandler(MyClassCPP::OnDeleted);
watcher->Renamed += gcnew RenamedEventHandler(MyClassCPP::OnRenamed);
watcher->Error += gcnew ErrorEventHandler(MyClassCPP::OnError);
watcher->Filter = "*.txt";
watcher->IncludeSubdirectories = true;
watcher->EnableRaisingEvents = true;
Console::WriteLine("Press enter to exit.");
Console::ReadLine();
return 0;
}
private:
static void OnChanged(Object^ sender, FileSystemEventArgs^ e)
{
if (e->ChangeType != WatcherChangeTypes::Changed)
{
return;
}
Console::WriteLine("Changed: {0}", e->FullPath);
}
static void OnCreated(Object^ sender, FileSystemEventArgs^ e)
{
Console::WriteLine("Created: {0}", e->FullPath);
}
static void OnDeleted(Object^ sender, FileSystemEventArgs^ e)
{
Console::WriteLine("Deleted: {0}", e->FullPath);
}
static void OnRenamed(Object^ sender, RenamedEventArgs^ e)
{
Console::WriteLine("Renamed:");
Console::WriteLine(" Old: {0}", e->OldFullPath);
Console::WriteLine(" New: {0}", e->FullPath);
}
static void OnError(Object^ sender, ErrorEventArgs^ e)
{
PrintException(e->GetException());
}
static void PrintException(Exception^ ex)
{
if (ex != nullptr)
{
Console::WriteLine("Message: {0}", ex->Message);
Console::WriteLine("Stacktrace:");
Console::WriteLine(ex->StackTrace);
Console::WriteLine();
PrintException(ex->InnerException);
}
}
};
int main()
{
MyClassCPP::Run();
}
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
설명
이 API에 대한 자세한 내용은 FileSystemWatcher에 대한 추가 API 설명을 참조하세요.
생성자
FileSystemWatcher() |
FileSystemWatcher 클래스의 새 인스턴스를 초기화합니다. |
FileSystemWatcher(String) |
모니터링할 디렉터리가 지정된 경우 FileSystemWatcher 클래스의 새 인스턴스를 초기화합니다. |
FileSystemWatcher(String, String) |
모니터링할 디렉터리 및 파일 형식이 지정된 경우 FileSystemWatcher 클래스의 새 인스턴스를 초기화합니다. |
속성
CanRaiseEvents |
구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Container |
IContainer을 포함하는 Component를 가져옵니다. (다음에서 상속됨 Component) |
DesignMode |
Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
EnableRaisingEvents |
구성 요소가 활성화되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
Events |
이 Component에 연결된 이벤트 처리기의 목록을 가져옵니다. (다음에서 상속됨 Component) |
Filter |
디렉터리에서 모니터링할 파일을 결정하는 데 사용되는 필터 문자열을 가져오거나 설정합니다. |
Filters |
디렉터리에서 모니터링할 파일을 결정하는 데 사용되는 모든 필터의 컬렉션을 가져옵니다. |
IncludeSubdirectories |
지정된 경로 내에 있는 하위 디렉터리를 모니터링해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
InternalBufferSize |
내부 버퍼의 크기(바이트)를 가져오거나 설정합니다. |
NotifyFilter |
조사할 변경 내용 형식을 가져오거나 설정합니다. |
Path |
조사할 디렉터리의 경로를 가져오거나 설정합니다. |
Site |
ISite에 대한 FileSystemWatcher를 가져오거나 설정합니다. |
SynchronizingObject |
디렉터리를 변경한 결과로 발생되는 이벤트 처리기 호출을 마샬링하는 데 사용되는 개체를 가져오거나 설정합니다. |
메서드
BeginInit() |
양식에 사용되거나 다른 구성 요소에서 사용하는 FileSystemWatcher의 초기화를 시작합니다. 초기화는 런타임에 발생합니다. |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
Dispose() |
FileSystemWatcher에서 사용하는 관리되지 않는 리소스를 해제합니다. |
Dispose() |
Component에서 사용하는 모든 리소스를 해제합니다. (다음에서 상속됨 Component) |
Dispose(Boolean) |
FileSystemWatcher에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. |
EndInit() |
폼에 사용되거나 다른 구성 요소에서 사용하는 FileSystemWatcher의 초기화를 끝냅니다. 초기화는 런타임에 발생합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetService(Type) |
Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다. (다음에서 상속됨 Component) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
OnChanged(FileSystemEventArgs) |
Changed 이벤트를 발생시킵니다. |
OnCreated(FileSystemEventArgs) |
Created 이벤트를 발생시킵니다. |
OnDeleted(FileSystemEventArgs) |
Deleted 이벤트를 발생시킵니다. |
OnError(ErrorEventArgs) |
Error 이벤트를 발생시킵니다. |
OnRenamed(RenamedEventArgs) |
Renamed 이벤트를 발생시킵니다. |
ToString() |
Component의 이름이 포함된 String을 반환합니다(있는 경우). 이 메서드는 재정의할 수 없습니다. (다음에서 상속됨 Component) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
WaitForChanged(WatcherChangeTypes) |
모니터링할 변경 내용 형식이 제공된 경우에, 발생한 변경 내용에 대한 특정 정보를 포함하는 구조를 반환하는 동기 메서드입니다. |
WaitForChanged(WatcherChangeTypes, Int32) |
모니터링할 변경 내용 형식과 제한 시간 범위 내에서 대기할 시간(밀리초)이 제공된 경우에, 발생한 변경 내용에 대한 특정 정보를 포함하는 구조를 반환하는 동기 메서드입니다. |
WaitForChanged(WatcherChangeTypes, TimeSpan) |
모니터링할 변경 유형에 따라 발생한 변경 내용에 대한 특정 정보가 포함된 구조를 동기적으로 반환합니다. |
이벤트
Changed |
지정된 Path에 있는 파일이나 디렉터리가 변경될 경우에 발생합니다. |
Created |
지정된 Path에서 파일이나 디렉터리가 만들어질 경우에 발생합니다. |
Deleted |
지정된 Path에 있는 파일이나 디렉터리가 삭제될 경우에 발생합니다. |
Disposed |
Dispose() 메서드를 호출하여 구성 요소를 삭제할 때 발생합니다. (다음에서 상속됨 Component) |
Error |
FileSystemWatcher의 인스턴스가 변경을 지속적으로 모니터링 할 수 없을 때 또는 내부 버퍼가 오버플로우일 때 발생합니다. |
Renamed |
지정된 Path에 있는 파일이나 디렉터리의 이름이 바뀔 경우에 발생합니다. |
적용 대상
추가 정보
.NET