c# filesystemwatcher 예제

디렉터리 또는 파일에서 볼 수 있는 몇 가지 유형의 변경 내용이 있습니다. 예를 들어 특성의 변경 내용, LastWrite 날짜 및 시간 또는 파일 또는 디렉터리 크기(축소)를 확인할 수 있습니다. 이 작업은 NotifyFilter 속성을 NotifyFilters 값 중 하나로 설정하여 수행됩니다. 시청할 수 있는 변경 유형에 대한 자세한 내용은 NotifyFilters를 참조하십시오. 모든 파일의 변경 내용을 보려면 Filter 속성을 빈 문자열(“””)으로 설정하거나 와일드카드(“*.*”)를 사용합니다. 특정 파일을 보려면 Filter 속성을 파일 이름으로 설정합니다. 예를 들어 MyDoc.txt 파일의 변경 내용을 보려면 필터 속성을 “MyDoc.txt”로 설정합니다. 특정 유형의 파일에서 변경 내용을 확인할 수도 있습니다. 예를 들어 텍스트 파일의 변경 내용을 보려면 Filter 속성을 “*.txt”로 설정합니다. 폴더 변경에 대한 주제를 가지고 있지만 FileSystemWatcher 클래스는 디렉터리 내에서 변경 내용을 감시하고 루트 디렉터리의 특성 자체는 변경하지 않으므로 루트 폴더의 변경 내용을 볼 수 없습니다.

예를 들어 C:My 문서라는 폴더를 모니터링하는 경우 C:My 문서로 이름을 바꾸면 클래스가 응답하지 않습니다. 그러나 파일 및 폴더가 생성되거나 포함되는 모든 파일을 계속 모니터링합니다. 감시된 디렉터리가 디렉터리 이름이 아닌 핸들을 기반으로 하기 때문입니다. 따라서 루트 폴더 또는 하위 디렉토리의 이름을 바꾸면 감시자가 중단되지 않습니다. 파일 또는 디렉터리 의 이름 바꾸기, 삭제 또는 생성을 확인할 수 있습니다. 예를 들어 텍스트 파일의 이름을 바꾸는 것을 감시하려면 Filter 속성을 “*.txt”로 설정하고 해당 매개 변수에 대해 이름이 지정된 다른 메서드를 호출합니다. 일부 시스템에서FileWatcher는 짧은 8.3 파일 이름 형식을 사용하여 파일에 대한 변경 사항을 보고합니다. 예를 들어 “LongFileName.LongExtension”에 대한 변경 내용은 “LongFil~”으로 보고될 수 있습니다. 론”.

다음 예제에서는 파일 SystemWatcher를 만들어 런타임에 지정된 디렉터리를 볼 수 있습니다. 구성 요소는 LastWrite 및 LastAccess 시간, 디렉터리에서 텍스트 파일의 생성, 삭제 또는 이름 바꾸기의 변경 내용을 감시하도록 설정되어 있습니다. 파일이 변경, 생성 또는 삭제된 경우 파일의 경로가 콘솔로 인쇄됩니다. 파일의 이름이 바뀌면 이전 및 새 경로가 콘솔에 인쇄됩니다. 일반적인 파일 시스템 작업은 두 개 이상의 이벤트를 발생시킬 수 있습니다. 예를 들어 파일이 한 디렉터리에서 다른 디렉터리로 이동되면 여러 OnChanged 및 일부 OnCreated 및 OnDeleted 이벤트가 발생할 수 있습니다. 파일 이동은 여러 개의 간단한 작업으로 구성된 복잡한 작업이므로 여러 이벤트가 발생합니다. 마찬가지로 일부 응용 프로그램(예: 바이러스 백신 소프트웨어)은 FileSystemWatcher에서 검색한 추가 파일 시스템 이벤트를 일으킬 수 있습니다. IDG라는 디렉터리를 시스템의 D:> 드라이브에서 사용할 수 있다고 가정하면 콘솔 응용 프로그램을 실행한 다음 IDG 디렉터리에서 새 파일을 만듭니다.