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