欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用FileSystemWatcher控件實(shí)現(xiàn)的文件監(jiān)控功能示例

 更新時(shí)間:2017年08月03日 10:22:29   作者:dodo-yufan  
這篇文章主要介紹了C#使用FileSystemWatcher控件實(shí)現(xiàn)的文件監(jiān)控功能,結(jié)合實(shí)例形式分析了C# FileSystemWatcher組件的功能及監(jiān)控文件更改情況的具體使用技巧,需要的朋友可以參考下

本文實(shí)例講述了C#使用FileSystemWatcher控件實(shí)現(xiàn)的文件監(jiān)控功能。分享給大家供大家參考,具體如下:

FileSystemWatcher

可以使用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í)例 使用FileSystemWatche組件來(lái)監(jiān)視運(yùn)行時(shí)指定的目錄:

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

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《C#文件操作常用技巧匯總》、《C#遍歷算法與技巧總結(jié)》、《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#常見(jiàn)控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程

希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#?如何獲取當(dāng)前進(jìn)程或線程的ID

    C#?如何獲取當(dāng)前進(jìn)程或線程的ID

    這篇文章主要介紹了C#?如何獲取當(dāng)前進(jìn)程或線程的ID,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 基于C#實(shí)現(xiàn)FTP下載文件

    基于C#實(shí)現(xiàn)FTP下載文件

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)FTP下載文件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • 再談異常處理try catch finally

    再談異常處理try catch finally

    這篇文章主要介紹了再談異常處理try catch finally 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • c# 計(jì)算時(shí)間間隔的簡(jiǎn)單方法(推薦)

    c# 計(jì)算時(shí)間間隔的簡(jiǎn)單方法(推薦)

    下面小編就為大家?guī)?lái)一篇c# 計(jì)算時(shí)間間隔的簡(jiǎn)單方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • C#實(shí)現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進(jìn)制字符串的方法

    C#實(shí)現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進(jìn)制字符串的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進(jìn)制字符串的方法,涉及C#字符串遍歷、加密與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • Silverlight文件上傳下載實(shí)現(xiàn)方法(下載保存)

    Silverlight文件上傳下載實(shí)現(xiàn)方法(下載保存)

    這篇文章主要介紹了Silverlight文件上傳下載實(shí)現(xiàn)方法(下載保存) ,需要的朋友可以參考下
    2015-11-11
  • C#使用StreamReader和StreamWriter類(lèi)讀寫(xiě)操作文件

    C#使用StreamReader和StreamWriter類(lèi)讀寫(xiě)操作文件

    這篇文章介紹了C#使用StreamReader和StreamWriter類(lèi)讀寫(xiě)操作文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#編程實(shí)現(xiàn)統(tǒng)計(jì)文件夾內(nèi)文件和隱藏文件的方法示例

    C#編程實(shí)現(xiàn)統(tǒng)計(jì)文件夾內(nèi)文件和隱藏文件的方法示例

    這篇文章主要介紹了C#編程實(shí)現(xiàn)統(tǒng)計(jì)文件夾內(nèi)文件和隱藏文件的方法,結(jié)合具體實(shí)例形式分析了C#針對(duì)文件與目錄的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下
    2017-07-07
  • C#索引器簡(jiǎn)單實(shí)例代碼

    C#索引器簡(jiǎn)單實(shí)例代碼

    打開(kāi).Net Framework源代碼隨便看幾個(gè)類(lèi),就會(huì)發(fā)現(xiàn)索引器的影子。索引器可以被重載,可以接收一個(gè)或者多個(gè)參數(shù),但是不可以定義為靜態(tài)的??梢杂藐P(guān)聯(lián)數(shù)組的方式訪問(wèn)索引器。
    2013-03-03
  • C# 線程同步詳解

    C# 線程同步詳解

    本文主要介紹了C#中線程同步的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02

最新評(píng)論