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

FileSystemWatcher

系統(tǒng) 2655 0

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

例如,如果一組用戶在合作處理一個存儲在服務器共享目錄下的文檔時,可以使用FileSystemWatcher組件編寫應用程序來監(jiān)視對共享目錄的更改情況。當檢測到更改時,該組件可以運行處理過程,通過電子郵件通知每個用戶。

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

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

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

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

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

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

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

FileSystemWatcher


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 健康| 镇安县| 聂拉木县| 惠东县| 益阳市| 灵宝市| 邵武市| 屏东县| 海盐县| 涟源市| 延边| 麻阳| 巫溪县| 云南省| 林西县| 班戈县| 饶河县| 贵州省| 靖西县| 集安市| 吴江市| 库尔勒市| 东兰县| 湘乡市| 祥云县| 漠河县| 红安县| 安康市| 乌兰察布市| 思南县| 会同县| 康定县| 两当县| 松阳县| 黔东| 新建县| 绥中县| 利津县| 巴东县| 古交市| 河北区|