日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

FileSystemWatcher

系統(tǒng) 2898 0

可以使用FileSystemWatcher組件監(jiān)視文件系統(tǒng),并對(duì)文件系統(tǒng)的改變作出反應(yīng)。通過(guò)使用FileSystemWatcher組件,在特定的文件或目錄被創(chuàng)建、修改或刪除時(shí),可以快速和便捷地啟動(dòng)業(yè)務(wù)流程。

例如,如果一組用戶在合作處理一個(gè)存儲(chǔ)在服務(wù)器共享目錄下的文檔時(shí),可以使用FileSystemWatcher組件編寫(xiě)應(yīng)用程序來(lái)監(jiān)視對(duì)共享目錄的更改情況。當(dāng)檢測(cè)到更改時(shí),該組件可以運(yùn)行處理過(guò)程,通過(guò)電子郵件通知每個(gè)用戶。

可以配置組件來(lái)監(jiān)視整個(gè)目錄及其內(nèi)容,或特定目錄下一個(gè)特定的文件或一組文件。若要監(jiān)視所有文件中的更改,應(yīng)將Filter屬性設(shè)置為空字符串("");若要監(jiān)視特定的文件,應(yīng)將Filter屬性設(shè)置為該文件的文件名(例如,若要監(jiān)視文件MyDoc.txt中的更改,將Filter屬性設(shè)置為"MyDoc.txt");也可以監(jiān)視特定文件類(lèi)型中的更改,例如若要監(jiān)視文本文件中的更改,將Fillter屬性設(shè)置為"*.txt"。

【提示】不要忽略隱藏文件。

可監(jiān)視目錄或文件中的若干種更改。例如,可監(jiān)視文件或目錄的Attributes、LastWrite的日期和時(shí)間或Size的更改。通過(guò)將FileSystemWatcher.NotifyFilter屬性設(shè)置為NotifyFilters中的某個(gè)值,就可以實(shí)現(xiàn)這個(gè)目標(biāo)。

還可以監(jiān)視文件或目錄的重命名、刪除或創(chuàng)建。例如,若要監(jiān)視文本文件的重命名,可將Filter屬性設(shè)置為"*.txt",并調(diào)用一個(gè)WaitForChanged方法,并設(shè)置該方法中WatcherChangeTypes的值為Renamed。

下面舉例說(shuō)明。創(chuàng)建一個(gè)FileSystemWatche組件來(lái)監(jiān)視運(yùn)行時(shí)指定的目錄。組件被設(shè)置用來(lái)監(jiān)視LastWrite和LastAccess時(shí)間的更改,以及目錄中文本文件的創(chuàng)建、刪除或重命名。如果文件被更改、創(chuàng)建或刪除,則文件的路徑就會(huì)被輸出到控制臺(tái)。當(dāng)一個(gè)文件被重命名時(shí),舊的和新的路徑都被輸出到控制臺(tái)。

【實(shí)例7-7】? 使用FileSystemWatche組件來(lái)監(jiān)視運(yùn)行時(shí)指定的目錄。

    
  1. using?System; ?
  2. using?System.IO; ?
  3. public ? class ?watcher ?
  4. { ?
  5. ???? public ? static ? void ?Main(string[]?args) ?
  6. ????{ ?
  7. ???????? //如果沒(méi)有指定目錄,則退出程序 ?
  8. ???????? if (args.Length!= 1 ) ?
  9. ????????{ ?
  10. ???????????? //顯示調(diào)用程序的正確方法 ?
  11. ????????????Console.WriteLine( "usage:Watcher.exe(directory)" ); ?
  12. ???????????? return ; ?
  13. ????????} ?
  14. ???????? //創(chuàng)建一個(gè)新的FileSystemWatcher并設(shè)置其屬性 ?
  15. ????????FileSystemWatcher?watcher= new ?FileSystemWatcher(); ?
  16. ????????watcher.Path=args[O]; ?
  17. ???????? /*監(jiān)視LastAcceSS和LastWrite時(shí)間的更改以及文件或目錄的重命名*/ ?
  18. ????????watcher.NotifyFilter=NotifyFilters.LastAccess?|?NotifyFilters.LastWrite?| ?
  19. ????????????NotifyFilters.FileName?|?NotifyFilters.DirectoryName; ?
  20. ???????? //只監(jiān)視文本文件 ?
  21. ????????watcher.Filter= "*.txt" ; ?
  22. ???????? //添加事件句柄 ?
  23. ???????? //當(dāng)由FileSystemWatcher所指定的路徑中的文件或目錄的 ?
  24. ???????? //大小、系統(tǒng)屬性、最后寫(xiě)時(shí)間、最后訪問(wèn)時(shí)間或安全權(quán)限 ?
  25. ???????? //發(fā)生更改時(shí),更改事件就會(huì)發(fā)生 ?
  26. ????????watcher.Changed?+= new ?FileSystemEventHandler(OnChanged); ?
  27. ???????? //由FileSystemWatcher所指定的路徑中文件或目錄被創(chuàng)建時(shí),創(chuàng)建事件就會(huì)發(fā)生 ?
  28. ????????watcher.Created?+= new ?FileSystemEventHandler(OnChanged); ?
  29. ???????? //當(dāng)由FileSystemWatcher所指定的路徑中文件或目錄被刪除時(shí),刪除事件就會(huì)發(fā)生 ?
  30. ????????watcher.Deleted?+= new ?FileSystemEventHandler(OnChanged)?; ?
  31. ???????? //當(dāng)由FileSystemWatcher所指定的路徑中文件或目錄被重命名時(shí),重命名事件就會(huì)發(fā)生 ?
  32. ????????watcher.Renamed?+= new ?RenamedEventHandler(OnRenamed); ?
  33. ???????? //開(kāi)始監(jiān)視 ?
  34. ????????watcher.EnableRaisingEvents= true ; ?
  35. ???????? //等待用戶退出程序 ?
  36. ????????Console.WriteLine( "Press\'q\'?to?quit?the?sample." ); ?
  37. ???????? while (Console.Read()!= 'q' ); ?
  38. ????} ?
  39. ???? //定義事件處理程序 ?
  40. ???? public ? static ? void ?OnChanged(object?sender,FileSystemEventArgs?e) ?
  41. ????{ ?
  42. ???? //指定當(dāng)文件被更改、創(chuàng)建或刪除時(shí)要做的事 ?
  43. ????????Console.WriteLine( "file:" +e.FullPath+ "" +e.ChangeType); ?
  44. ????} ?
  45. ???? public ? static ? void ?OnRenamed(object?sender,RenamedEventArgs?e) ?
  46. ????{ ?
  47. ???? //指定當(dāng)文件被重命名時(shí)發(fā)生的動(dòng)作 ?
  48. ????????Console.WriteLine( "Fi]e:{0}?renamed?to{1}" ,e.OldFullPath,e.FullPath); ?
  49. ????} ?
  50. }?

FileSystemWatcher


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 清水县| 田阳县| 凤阳县| 衡阳县| 台北县| 丁青县| 泰州市| 余姚市| 石屏县| 武乡县| 绥阳县| 镇江市| 禹州市| 县级市| 连云港市| 阜康市| 昌黎县| 抚松县| 方山县| 根河市| 衡南县| 图片| 齐河县| 晋州市| 芦溪县| 天镇县| 汾阳市| 武乡县| 定襄县| 永康市| 逊克县| 依安县| 新和县| 屏南县| 湄潭县| 营口市| 郑州市| 湾仔区| 济阳县| 屯门区| 南皮县|