C\#FileSystemWatcher 컨트롤 을 사용 하여 실 현 된 파일 모니터링 기능 예시
4469 단어 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\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.