집 >백엔드 개발 >C#.Net 튜토리얼 >C#이 FileSystemWatcher 컨트롤을 사용하여 파일 모니터링을 구현하는 방법에 대한 구체적인 예 공유
이 글에서는 주로 FileSystemWatcher 컨트롤을 사용하여 C#에서 구현한 파일 모니터링 기능을 소개합니다. C# FileSystemWatcher 컴포넌트의 기능을 분석하고 파일 변경 사항을 모니터링하는 구체적인 사용 방법을 예제 형식으로 설명합니다.
이 문서의 예제에서는 FileSystemWatcher 컨트롤을 사용하여 구현된 C# 파일 모니터링 기능을 설명합니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
FileSystemWatcher
FileSystemWatcher 구성 요소를 사용하여 파일 시스템을 모니터링하고 파일 시스템의 변경 사항에 대응할 수 있습니다. FileSystemWatcher 구성 요소를 사용하면 특정 파일이나 디렉터리가 생성, 수정 또는 삭제될 때 비즈니스 프로세스를 빠르고 쉽게 시작할 수 있습니다.
예를 들어, 사용자 그룹이 서버의 공유 디렉터리에 저장된 문서를 공동 작업하는 경우 FileSystemWatcher 구성 요소를 사용하여 공유 디렉터리의 변경 사항을 모니터링하는 애플리케이션을 작성할 수 있습니다. 변경 사항이 감지되면 이 구성 요소는 프로세스를 실행하여 이메일을 통해 각 사용자에게 알릴 수 있습니다.
전체 디렉터리와 그 내용, 특정 디렉터리에 있는 특정 파일이나 파일 그룹을 모니터링하도록 구성 요소를 구성할 수 있습니다. 모든 파일의 변경 사항을 모니터링하려면 특정 파일을 모니터링하려면 Filter 속성을 빈 문자열("")로 설정해야 하며, Filter 속성은 파일의 파일 이름으로 설정해야 합니다(예: MyDoc 파일을 모니터링하려면). .txt의 경우 필터 속성을 "MyDoc.txt"로 설정), 특정 파일 형식의 변경 사항을 모니터링할 수도 있습니다. 예를 들어 텍스트 파일의 변경 사항을 모니터링하려면 필터 속성을 "*.txt"로 설정하세요.
【팁】숨겨진 파일을 무시하지 마세요.
디렉토리나 파일의 여러 유형의 변경 사항을 모니터링할 수 있습니다. 예를 들어 파일 또는 디렉터리 특성, LastWrite 날짜 및 시간 또는 크기 변경을 모니터링할 수 있습니다. 이는
FileSystemWatcher.NotifyFilter 속성을 NotifyFilters의 값으로 설정하여 달성할 수 있습니다.
또한 이름 바꾸기, 삭제 또는 생성을 위해 파일이나 디렉터리를 모니터링합니다. 예를 들어 텍스트 파일 이름 바꾸기를 모니터링하려면 Filter 속성을 "*.txt"로 설정하고 WaitForChanged 메서드를 호출한 다음 메서드의 WatcherChangeTypes 값을 Renamed로 설정합니다.
아래 예시입니다. 런타임에 지정된 디렉터리를 모니터링하려면 FileSystemWatche 구성 요소를 만듭니다. 구성 요소는 LastWrite 및 LastAccess 시간 변경은 물론 디렉터리에 있는 텍스트 파일의 생성, 삭제 또는 이름 변경을 모니터링하도록 구성됩니다. 파일이 변경, 생성 또는 삭제되면 파일 경로가 콘솔에 인쇄됩니다. 파일 이름이 바뀌면 이전 경로와 새 경로가 모두 콘솔에 인쇄됩니다.
Instance 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#이 FileSystemWatcher 컨트롤을 사용하여 파일 모니터링을 구현하는 방법에 대한 구체적인 예 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!