System.IO.FileSystemWatcher
MSDN 說明:偵聽文件系統更改通知,並在目錄或目錄中的文件發生更改時引發事件。
這兩天看到論壇上關於如何監視目錄文件的狀態帖子很多,自己今天也在看System.IO下面的類,就順便把他給看了,並實驗了一下,其實此類用起來非常簡單,不過有兩三個地方需要注意下,下面把需要注意的地方說一下
System.IO.FileSystemWatcher watch = new FileSystemWatcher("D:\\1\\"); //初始化目錄監視
watch.Filter = "*.txt"; //監視的對象,目錄中監視哪些文件,默認為*.*
//不過這裡有個好玩的地方,實驗證明,通配符可以用在很多地方,比如可以設置成為 watch.Filter = "*.tx*"; 針對具體文件就寫具體文件名
watch.Changed += new FileSystemEventHandler(watch_Changed); //文件改變事件
watch.Created += new FileSystemEventHandler(watch_Created); //文件添加事件
watch.Deleted += new FileSystemEventHandler(watch_Deleted); //文件刪除事件
//otifyFilter:獲取或設置要監視的更改類型。
//下面是csdn例子對文件屬性的監視,這裡有個問題,就是NotifyFilters.LastAccess | NotifyFilters.LastWrite同時設置的話 Changed事件會運行兩次
//原因就是 LastAccess 文件或文件夾上一次打開的日期。 LastWrite 上一次向文件或文件夾寫入內容的日期。 打開文件修改的時候會同時激發
//這個是要注意的第二點
watch.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite|NotifyFilters.FileName | NotifyFilters.DirectoryName;
//要注意的第三點,如果下面不設置為true,事件是不會運行的 EnableRaisingEvents 屬性是指示是否啟用此組件
watch.EnableRaisingEvents = true;