C\#에서 FileSystemWatcher 의 사용 튜 토리 얼


System.IO 에 있 는 FileSystemWatcher 는 파일 시스템 의 변경 을 감시 하 는 데 자주 사 용 됩 니 다.파일 시스템 의 파일 이나 폴 더 가 수정 되면 해당 하 는 리 셋 이 벤트 를 자동 으로 실행 합 니 다.
FileSystem Watcher 가 어떻게 작 동 하 는 지 알 기 위해 감 시 된 폴 더 를 지정 할 수 있 습 니 다.감 시 된 폴 더 가 수정 되면 다음 과 같은 사건 이 발생 할 수 있 습 니 다.
  • 변경:파일 이나 폴 더 가 수정 되 었 을 때 이 사건 을 촉발 합 니 다
  • Created:파일 이나 폴 더 가 성공 적 으로 생 성 되 었 을 때 이 사건 을 촉발 합 니 다
  • Deleted:파일 이나 폴 더 가 성공 적 으로 삭제 되 었 을 때 이 사건 을 촉발 합 니 다
  • Error:변경 과정 에서 오류 가 발생 하면 이 사건 을 촉발 합 니 다
  • 이름 바 꾸 기:파일 이나 폴 더 가 성공 적 으로 이름 을 바 꾸 었 을 때 이 사건 을 촉발 합 니 다
  • 간단 한 file 감시 만 들 기
    다음은 Visual Studio 에서 파일 감 시 를 어떻게 하 는 지 알 아 보 는 콘 솔 프로그램 을 만 듭 니 다.그러나 콘 솔 을 Windows Service 로 배치 하 는 것 을 권장 합 니 다.시스템 에 상주 감 시 를 편리 하 게 하고 감 시 된 경로 가 변경 되면 자동 으로 알림 사건 을 보 냅 니 다.
    할 말 은 다 했 으 니 이제 코드 를 연구 합 시다.
    
        static void Main(string[] args)
        {
          string path = @"D:\IDG";
    
          MonitorDirectory(path);
    
          Console.ReadKey();
        }
    
    
    아래 코드 세 션 은 MonitorDirectory 방법의 내부 논 리 를 보 여 줍 니 다.이 방법 은 지정 한 폴 더 를 감시 하고 폴 더 가 변경 되 었 을 때 이 벤트 를 촉발 할 수 있 습 니 다.폴 더 경 로 는 매개 변 수 를 통 해 전 달 된 것 을 볼 수 있 습 니 다.
    
        private static void MonitorDirectory(string path)
        {
          FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
    
          fileSystemWatcher.Path = path;
    
          fileSystemWatcher.Created += FileSystemWatcher_Created;
          fileSystemWatcher.Renamed += FileSystemWatcher_Renamed;
    
          fileSystemWatcher.Deleted += FileSystemWatcher_Deleted;
    
          fileSystemWatcher.EnableRaisingEvents = true;
        }
    
    
    위의 이벤트 가 어떻게 들 어 갔 는 지 에 중심 을 두 고 알 아 볼 수 있 습 니 다.그리고 저 는 fileSystem Watcher.EnableRaising Events=true 라 고 썼 습 니 다.이것 은 무슨 뜻 입 니까?현재 경로 가 본 격 적 으로 모니터링 되 기 시 작 했 음 을 표시 합 니 다.모니터링 경로 가 변경 되면 FileSystemWatcher 에서 지정 한 이벤트 가 실 행 됩 니 다.
    위 에서 정의 한 이벤트 이 벤트 를 훑 어보 고 각각 이 이벤트 의 처리 함 수 를 정의 합 니 다.예 를 들 어 FileSystemWatcherCreated,FileSystemWatcher_Renamed,FileSystemWatcher_deleted,어떤 이 벤트 를 터치 하면 이벤트 처리 함 수 를 터치 합 니 다.그 렇 죠?구체 적 인 코드 는 다음 과 같 습 니 다.
    
        private static void FileSystemWatcher_Created(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File created: {0}", e.Name);
        }
    
        private static void FileSystemWatcher_Renamed(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File renamed: {0}", e.Name);
        }
    
        private static void FileSystemWatcher_Deleted(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File deleted: {0}", e.Name);
        }
    
    
    다음은 참고 할 수 있 는 완전한 코드 목록 입 니 다.
    
    using System;
    
    using System.IO;
    
    namespace IDGFileSystemWatcher
    {
      class Program
      {
        static void Main(string[] args)
        {
          string path = @"D:\IDG";
          MonitorDirectory(path);
          Console.ReadKey();
        }
        private static void MonitorDirectory(string path)
        {
          FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
          fileSystemWatcher.Path = path;
          fileSystemWatcher.Created += FileSystemWatcher_Created;
          fileSystemWatcher.Renamed += FileSystemWatcher_Renamed;
          fileSystemWatcher.Deleted += FileSystemWatcher_Deleted;
          fileSystemWatcher.EnableRaisingEvents = true;
        }
    
        private static void FileSystemWatcher_Created(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File created: {0}", e.Name);
        }
    
        private static void FileSystemWatcher_Renamed(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File renamed: {0}", e.Name);
        }
    
        private static void FileSystemWatcher_Deleted(object sender, FileSystemEventArgs e)
        {
          Console.WriteLine("File deleted: {0}", e.Name);
        }
      }
    }
    
    
    IDG 폴 더 가 E 디스크 에 있다 고 가정 하고 콘 솔 을 실행 한 다음 IDG 폴 더 에 새 파일 을 만 듭 니 다.의외 의 사고 가 발생 하지 않 으 면 이 새 파일 이름 이 콘 솔 에 나타 나 는 것 을 관찰 할 수 있 습 니 다.이 는 FileSystem Watcher 를 설명 합 니 다.Created 가 성공 적 으로 촉발 되 었 습 니 다.다음 그림 을 참고 하 십시오:

    링크
    C\#중 FileSystemWatcher 사용 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#FileSystemWatcher 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기