파일 시스템 이벤트 모니터링 소개
업데이트: 2007년 11월
FileSystemWatcher 구성 요소를 통해 파일 시스템을 모니터링하고 디렉터리나 파일이 변경될 때 반응할 수 있습니다. 이렇게 하면 특정 파일이나 디렉터리를 생성, 수정, 삭제할 때 신속하고 쉽게 비즈니스 프로세스를 시작할 수 있습니다. 예를 들어, 여러분과 동료들이 서버의 공유 디렉터리에 저장된 문서를 함께 사용하고 있다고 가정합니다. FileSystemWatcher 구성 요소의 인스턴스를 사용하면 공유 디렉터리의 변경 내용을 감시하는 응용 프로그램을 작성할 수 있습니다. 변경 내용이 발견되면 구성 요소에서 전자 메일을 통해 각 그룹 구성원에게 알리는 프로시저를 실행할 수 있습니다.
참고: |
---|
FileSystemWatcher 구성 요소는 루트 디렉터리의 특성 자체에 대한 변경 내용이 아니라 디렉터리 안의 변경 내용을 감시하도록 설계되었습니다. 예를 들어, c:\MyProjects라는 디렉터리를 감시하는 경우 구성 요소에서는 디렉터리 안의 변경 내용을 모니터링하지만 루트 디렉터리 자체에 대한 변경 내용을 모니터링하지는 않습니다. |
디렉터리 전체와 그 디렉터리의 내용을 감시하거나 주어진 디렉터리 안의 특정 파일이나 파일 집합을 감시하는 구성 요소를 작성할 수 있습니다. FileSystemWatcher 구성 요소는 특정 루트 디렉터리 내에서 파일 또는 하위 디렉터리가 만들어지거나 삭제되거나 이름이 변경되거나 기타 방식으로 변경될 때마다 이벤트를 발생시킵니다. 구성 요소에서 모니터링하는 변경 형식에는 파일 또는 하위 디렉터리의 특성, 크기, 마지막 수정 시간, 마지막 액세스 시간 및 보안 설정의 변경이 있습니다.
보안 정보: |
---|
악의적인 프로그램이 FileSystemWatcher 구성 요소가 모니터링하는 디렉터리에 대한 액세스를 얻어 이 구성 요소가 처리할 수 없을 정도의 많은 변경 내용을 생성할 경우 서비스 거부 공격이 발생할 수 있습니다. 고용량 시스템에서 파일 변경 시 고려 사항의 권장 사항을 따르고 액세스 제어 목록을 적절히 사용하여 서비스 거부 공격을 방지하십시오. |
디렉터리 수준 이벤트
응용 프로그램에서 모니터링하는 루트 디렉터리나 파일이 변경되면 하나 이상의 이벤트가 발생하고 버퍼에 저장되었다가 최종적으로 구성 요소로 전달된 다음 처리됩니다. FileSystemWatcher 구성 요소를 사용하면 다음과 같은 이벤트에 액세스할 수 있습니다.
Created — 디렉터리나 파일이 만들어질 때마다 발생합니다.
Deleted — 디렉터리나 파일이 삭제될 때마다 발생합니다.
Renamed — 디렉터리나 파일의 이름이 변경될 때마다 발생합니다.
Changed — 디렉터리나 파일의 크기, 시스템 특성, 마지막 수정 시간, 마지막 액세스 시간, 보안 권한이 변경될 때마다 발생합니다.
참고: 파일 복사나 이동처럼 일반적으로 발생하는 일부 변경은 바로 이벤트를 발생시키지 않고 이벤트를 발생시키는 원인이 됩니다. 파일을 복사할 경우 시스템은 파일이 복사된 디렉터리에서 Created 이벤트를 발생시키지만 원래의 디렉터리에서는 어떠한 이벤트도 발생시키지 않습니다. 파일을 이동하면 서버에서 두 개의 이벤트를 발생시킵니다. 즉, 소스 디렉터리에서 Deleted 이벤트를 발생시키고 이어서 대상 디렉터리에서 Created 이벤트를 발생시킵니다.
디렉터리의 각 파일이 변경되면 별도의 이벤트가 발생합니다. 사용자가 한 파일을 여러 번 변경하면 응용 프로그램에서는 각 변경 내용에 대해 별도의 이벤트를 발생시킵니다. 예를 들어, 파일이 다섯 개 있는 디렉터리를 감시하고 있을 때 모든 파일의 보안 권한이 갑자기 변경되면 다섯 개의 Changed 이벤트를 받게 됩니다. 사용자가 이 파일에 대해 각각 이름을 변경하고 새 보안 권한을 할당하면 10개의 이벤트 알림 즉, 다섯 개의 파일에 대해 각각 Changed 이벤트 알림과 Renamed 이벤트 알림을 받게 됩니다.
참고 항목
작업
방법: FileSystemWatcher 구성 요소 인스턴스 만들기
방법: FileSystemWatcher 구성 요소 인스턴스 구성
방법: 지정된 파일 시스템 이벤트가 발생할 때까지 대기