[C#]파일 감시 C# 2008. 9. 18. 13:18

C#에는 재미있는 클래스들이 많이 있다.

그 중 하나가 파일 시스템을 감시하는 FileSystemWatcher 클래스가 있다.

하지만 크로스 스레드 문제로 인한 오류가 발생하는데 필자는 다음과 같이 하여 이용하고 있다.           
           CheckForIllegalCrossThreadCalls = false;//크로스 스레드 자체를 무시.
            FileSystemWatcher watcher = new FileSystemWatcher();

            watcher.Path = txtPath.Text;
           
            watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
                                   | NotifyFilters.FileName | NotifyFilters.DirectoryName;
       
            watcher.Filter = "*.*";
                   
            watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.Deleted += new FileSystemEventHandler(OnChanged);
            watcher.Renamed += new RenamedEventHandler(OnChanged);
            여기에서 OnChanged는 메소드로 각 해당하는 상태가 일어났을 시 그 메소드를 실행한다.

            watcher.EnableRaisingEvents = true;