FileSystemWatcher监听文件是否有被修改
作用:監(jiān)聽文件系統(tǒng)更改通知,并在目錄或目錄中的文件更改時(shí)引發(fā)事件。
?
需求:監(jiān)聽特定文件是否修改,然后做出相應(yīng)的操作。
方法:
①利用一個(gè)線程,一直去查找該指定的文件是否有被修改,如果修改則操作特定步驟,否則繼續(xù)查詢。
缺點(diǎn):占用CPU,要一直循環(huán)查找。
②利用.net里面的FileSystemWatcher來(lái)監(jiān)聽文件是否有被修改,如果有,則操作特定步驟。
?
代碼:
①定義一個(gè)全局變量Watch
FileSystemWatcher Watch;?
②初始化該全局變量
Watch = new FileSystemWatcher();Watch.Path = @"C:\Users\RAPOO\Desktop\123";Watch.Filter = "modlist.mod";Watch.NotifyFilter = NotifyFilters.LastWrite;Watch.IncludeSubdirectories = false;Watch.Changed += new FileSystemEventHandler(watch_changed);Watch.EnableRaisingEvents = true;?
③相應(yīng)修改事件
private void watch_changed(object source, FileSystemEventArgs e){if (Watch != null){try{Watch.EnableRaisingEvents = false;MessageBox.Show("改變!!!");}finally{Watch.EnableRaisingEvents = true;}}}?
?
注意:
1、代碼只添加修改事件,還有重命名、刪除、新增事件。
2、在修改事件里面,需要將事件監(jiān)控先重置為false,待執(zhí)行結(jié)束后再修改為true。目的是解決修改事件執(zhí)行兩次的BUG。
下圖為MSDN上注釋。
?
參考鏈接:
1、https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
2、http://qa.helplib.com/132321
轉(zhuǎn)載于:https://www.cnblogs.com/wangyblzu/p/5979507.html
總結(jié)
以上是生活随笔為你收集整理的FileSystemWatcher监听文件是否有被修改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PHP和Mysql处理IP地址
- 下一篇: Oracle 中 for update