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

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

提問人:劉團圓發(fā)布時間:2020-12-10

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


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

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