C\#FileSystemWatcher 컨트롤 을 사용 하여 실 현 된 파일 모니터링 기능 예시

본 고 는 C\#FileSystemWatcher 컨트롤 을 사용 하여 실 현 된 파일 모니터링 기능 을 실례 적 으로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
FileSystemWatcher
FileSystem Watcher 구성 요 소 를 사용 하여 파일 시스템 을 감시 하고 파일 시스템 의 변화 에 반응 할 수 있 습 니 다.FileSystemWatcher 구성 요 소 를 사용 하여 특정한 파일 이나 디 렉 터 리 가 생 성 되 거나 수정 되 거나 삭 제 될 때 업무 절 차 를 빠 르 고 편리 하 게 시작 할 수 있 습 니 다.
예 를 들 어 한 그룹의 사용자 가 서버 공유 디 렉 터 리 에 저 장 된 문 서 를 공동으로 처리 할 때 FileSystemWatcher 구성 요 소 를 사용 하여 공유 디 렉 터 리 의 변경 상황 을 감시 할 수 있 습 니 다.변경 사항 이 감지 되 었 을 때 이 구성 요 소 는 처리 과정 을 실행 할 수 있 으 며,이메일 로 모든 사용자 에 게 알 릴 수 있 습 니 다.
전체 디 렉 터 리 와 내용 을 감시 하거나 특정 디 렉 터 리 의 다음 특정 파일 이나 파일 을 감시 할 수 있 는 구성 요 소 를 설정 할 수 있 습 니 다.모든 파일 의 변경 사항 을 감시 하려 면 Filter 속성 을 빈 문자열 로 설정 해 야 합 니 다(").특정 파일 을 감시 하려 면 Filter 속성 을 이 파일 의 파일 이름 으로 설정 해 야 합 니 다(예 를 들 어 파일 MyDoc.txt 의 변경 사항 을 감시 하려 면 Filter 속성 을"MyDoc.txt"로 설정 합 니 다).텍스트 파일 의 변경 사항 을 감시 하려 면 Fillter 속성 을'*.txt'로 설정 합 니 다.
[힌트]숨겨 진 파일 을 무시 하지 마 세 요.
디 렉 터 리 나 파일 의 변경 사항 을 감시 할 수 있 습 니 다.예 를 들 어 파일 이나 디 렉 터 리 의 Attributes,LastWrite 의 날짜 와 시간 또는 Size 의 변경 을 감시 할 수 있 습 니 다.통과 장
FileSystem Watcher.Notify Filter 속성 을 Notify Filters 의 특정한 값 으로 설정 하면 이 목 표를 실현 할 수 있 습 니 다.
파일 이나 디 렉 터 리 의 이름 을 바 꾸 거나 삭제 하거나 만 드 는 것 도 감시 할 수 있다.예 를 들 어 텍스트 파일 의 이름 변경 을 감시 하려 면 Filter 속성 을'*.txt'로 설정 하고 WaitForChanged 방법 을 호출 하 며 이 방법 에서 WatcherChangeTypes 의 값 을 Renamed 로 설정 할 수 있 습 니 다.
다음은 예 를 들 어 설명 한다.실행 할 때 지정 한 디 렉 터 리 를 감시 하기 위해 FileSystemWatche 구성 요 소 를 만 듭 니 다.구성 요 소 는 LastWrite 와 LastAccess 시간의 변경 을 감시 하고 디 렉 터 리 에 있 는 텍스트 파일 의 생 성,삭제 또는 이름 을 바 꾸 는 데 사 용 됩 니 다.파일 이 변경 되 거나 생 성 되 거나 삭제 되면 파일 의 경 로 는 콘 솔 로 출력 됩 니 다.파일 이름 이 바 뀌 었 을 때 오래된 경로 와 새로운 경로 가 콘 솔 로 출력 되 었 습 니 다.
실행 할 때 지정 한 디 렉 터 리 를 감시 하기 위해 FileSystemWatche 구성 요 소 를 사용 합 니 다.

using System;
using System.IO;
public class watcher 
{
  public static void Main(string[] args) 
  {
    //        ,     
    if(args.Length!=1) 
    {
      //           
      Console.WriteLine("usage:Watcher.exe(directory)");
      return;
    }
    //      FileSystemWatcher      
    FileSystemWatcher watcher=new FileSystemWatcher();
    watcher.Path=args[O];
    /*  LastAcceSS LastWrite                */
    watcher.NotifyFilter=NotifyFilters.LastAccess | NotifyFilters.LastWrite |
           NotifyFilters.FileName | NotifyFilters.DirectoryName;
    //       
    watcher.Filter="*.txt";
    //      
    //  FileSystemWatcher              
    //  、    、     、           
    //     ,        
    watcher.Changed +=new FileSystemEventHandler(OnChanged);
    // FileSystemWatcher                ,        
    watcher.Created +=new FileSystemEventHandler(OnChanged);
    //  FileSystemWatcher                ,        
    watcher.Deleted +=new FileSystemEventHandler(OnChanged) ;
    //  FileSystemWatcher                 ,         
    watcher.Renamed +=new RenamedEventHandler(OnRenamed);
    //    
    watcher.EnableRaisingEvents=true;
    //        
    Console.WriteLine("Press\'q\' to quit the sample.");
    while(Console.Read()!='q');
  }
  //        
  public static void OnChanged(object sender,FileSystemEventArgs e) 
  {
    //        、          
    Console.WriteLine("file:"+e.FullPath+""+e.ChangeType);
  }
  public static void OnRenamed(object sender,RenamedEventArgs e) 
  {
    //               
    Console.WriteLine("Fi]e:{0} renamed to{1}",e.OldFullPath,e.FullPath);
  }
}

더 많은 C\#관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있다.,,,,,C\#파일 작업 상용 기술 집합,C\#알고리즘 과 기술 총화,C\#프로 그래 밍 스 레 드 사용 기술 총화,C\#일반적인 컨트롤 사용법 강좌,WinForm 컨트롤 사용법 요약C\#데이터 구조 와 알고리즘 튜 토리 얼
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기