位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C# > 問(wèn)題詳情

C# 監(jiān)控文件系統(tǒng)

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-10

    有時(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、FileNameLastAccess 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)控工作。


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部