// 1. FileSystemWatcher 생성자 호출 FileSystemWatcher watcher = new FileSystemWatcher();
// 2. 감시할 폴더 설정(디렉토리) watcher.Path = filePath;
// 3. 감시할 항목들 설정 (파일 생성, 크기, 이름, 마지막 접근 변경 등) watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size | NotifyFilters.LastAccess | NotifyFilters.CreationTime | NotifyFilters.LastWrite;
//감시할 파일 유형 선택 예) *.* 모든 파일 watcher.Filter = "*.*";
watcher.IncludeSubdirectories = true;
// 4. 감시할 이벤트 설정 (생성, 변경..) watcher.Created += new FileSystemEventHandler(Changed); watcher.Changed += new FileSystemEventHandler(Changed); watcher.Renamed += new RenamedEventHandler(Renamed);
// 5. FIleSystemWatcher 감시 모니터링 활성화 watcher.EnableRaisingEvents = true; }
// 6. 감시할 폴더 내부 변경 시 event 호출 privatevoidChanged(object source, FileSystemEventArgs e) { Console.Write(e.FullPath); }
// 이름 변경 시 event 호출 privatevoidRenamed(object source, RenamedEventArgs e) { MessageBox.Show(e.FullPath); } } }
FileSystemWatcher은 using System.IO를 선언해 주어야 합니다.
initWatcher() 함수를 실행시키면 D:\files\ 해당 경로에 파일이 생기면 바로 Changed() 이벤트가 호출됩니다.
호출될 때 담기는 파라미터 FileSystemEventArgs e에서 e.Fullpath를 통해 생성된 파일의 전체 경로를 가져옵니다.
1 2
# 예) D:\files\새 텍스트 문서.txt
이렇게 FileSystemWatcher를 사용해서 해당 폴더를 실시간으로 감지 모니터링하는 기능을 구현했습니다.