C#如何利用FileSystemWatcher控制項實現的檔案監控的具體範例分享
這篇文章主要介紹了C#使用FileSystemWatcher控制項實現的文件監控功能,結合實例形式分析了C# FileSystemWatcher組件的功能及監控文件更改情況的具體使用技巧,需要的朋友可以參考下
本文實例敘述了C#使用FileSystemWatcher控制項實現的檔案監控功能。分享給大家供大家參考,如下:
FileSystemWatcher
可以使用FileSystemWatcher元件監視檔案系統,並對檔案系統的變更作出反應。透過使用FileSystemWatcher元件,在特定的檔案或目錄被建立、修改或刪除時,可以快速且方便地啟動業務流程。
例如,如果一組使用者在合作處理一個儲存在伺服器共用目錄下的文件時,可以使用FileSystemWatcher元件編寫應用程式來監控對共用目錄的變更情況。當偵測到變更時,該元件可以運行處理過程,透過電子郵件通知每個使用者。
可以設定元件來監視整個目錄及其內容,或特定目錄下一個特定的檔案或一組檔案。若要監視所有檔案中的更改,應將Filter屬性設為空字串("");若要監視特定的文件,應將Filter屬性設定為該文件的檔案名稱(例如,若要監視檔案MyDoc. txt中的更改,將Filter屬性設為"MyDoc.txt");也可以監視特定檔案類型中的更改,例如若要監視文字檔案中的更改,將Fillter屬性設為"*.txt"。
【提示】不要忽略隱藏檔案。
可監視目錄或檔案中的若干種變更。例如,可監視檔案或目錄的Attributes、LastWrite的日期和時間或Size的變更。將
FileSystemWatcher.NotifyFilter屬性設定為NotifyFilters中的某個值,就可以實現這個目標。
也可以監視檔案或目錄的重新命名、刪除或建立。例如,若要監視文字檔案的重新命名,可將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#如何利用FileSystemWatcher控制項實現的檔案監控的具體範例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

當今人工智慧(AI)技術的發展如火如荼,它們在各個領域都展現了巨大的潛力和影響力。今天大姚給大家分享4個.NET開源的AI模型LLM相關的專案框架,希望能為大家提供一些參考。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一種開源的軟體開發工具包(SDK),旨在將大型語言模型(LLM)如OpenAI、Azure

如果你是.NET開發者,你必須意識到在交付高品質軟體方面,優化功能和效能的重要性。透過熟練使用提供的資源並減少網站載入時間,你不僅為使用者創造了愉快的體驗,還能減少基礎設施成本。

在高並發請求處理方面,.NETASP.NETCoreWebAPI效能優於JavaSpringMVC,原因包括:AOT提前編譯,減少啟動時間;更精細的記憶體管理,由開發人員負責分配和釋放物件記憶體。

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。
