C# 監(jiān)控文件系統(tǒng)
有時,應(yīng)用程序所需要完成的工作不僅限于從文件系統(tǒng)中讀寫文件。例如,知道修改文件或目錄的時間非常要。.NETFramework允許方便地創(chuàng)建完成這些任務(wù)的定制應(yīng)用程序。
幫助完成這些任務(wù)的類是FileSystemWatcher。這個類提供了幾個應(yīng)用程序可以捕獲的事件。應(yīng)用程序可以對文件系統(tǒng)事件作出響應(yīng)。
使用FileSystemWatcher的基本過程非常簡單。首先必須設(shè)置一些屬性,指定監(jiān)控的位置、內(nèi)容以及引發(fā)應(yīng)用程序要處理的事件的時間。然后給FileSystemWatcher提供定制事件處理程序的地址,當(dāng)發(fā)生重要事件時,F(xiàn)ileSystemWatcher就可以調(diào)用這些事件處理程序。最后打開FileSystemWatcher,等待事件。
在啟用HleSystemWatcher對象之前必須設(shè)置的屬性如表所示。
屬 性 | 說 明 |
Path | 設(shè)置要監(jiān)控的文件位置或目錄 |
NotilyFilter | 這是NotityFilters枚舉值的組合,NotifyFilters枚舉值指定了在被監(jiān)控的文件內(nèi)要監(jiān)控哪些內(nèi)容。這些表示要監(jiān)控的文件或文件夾的屬性。如果指定的屬性發(fā)生了變化,就引發(fā)事件可能的枚舉值是Attributes、CreationTime、DirectoryName、FileName、LastAccess 、LastWrite、Security 和 Size。注意,可通過二元OR 運算符來合并這些枚舉值 |
Filter | 該過濾器指定要監(jiān)控哪些文件,例如,*.txt |
設(shè)置之后,就必須為Changed、Created, Deleted和Renamed這4個事件編寫事件處理程序如之前所述,這需要創(chuàng)建自己的方法,并將方法賦給對象的事件將自己的事件處理程序賦給這些方法,就可以在引發(fā)事件時調(diào)用方法。當(dāng)修改與Path、NotifyFilter和Filter屬性匹配的文件或目錄時,就引發(fā)每個事件。
設(shè)置了屬性和事件后,將EnableRaisingEvents屬性設(shè)置為true,就可以開始監(jiān)控工作。
點擊加載更多評論>>