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

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

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

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

FileSystemWatcher

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

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

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

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

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

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

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

實例 使用FileSystemWatche組件來監(jiān)視運行時指定的目錄:

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

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

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

相關(guān)文章

  • Unity實戰(zhàn)之制作動畫編輯器

    Unity實戰(zhàn)之制作動畫編輯器

    為了更方便地為UI視圖添加動畫,將動畫的編輯功能封裝在了UI View類中,可以通過編輯器快速的為視圖編輯動畫。本文將通過Unity制作一個動畫編輯器,需要的可以參考一下
    2022-02-02
  • C#在winform中實現(xiàn)數(shù)據(jù)增刪改查等功能

    C#在winform中實現(xiàn)數(shù)據(jù)增刪改查等功能

    本篇文章主要是介紹了C#在winform中操作數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)增刪改查,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • C#的FileInfo類實現(xiàn)文件操作實例

    C#的FileInfo類實現(xiàn)文件操作實例

    這篇文章主要介紹了C#的FileInfo類實現(xiàn)文件操作實例,比較實用的功能,需要的朋友可以參考下
    2014-07-07
  • WPF中不規(guī)則窗體與WindowsFormsHost控件兼容問題的解決方法

    WPF中不規(guī)則窗體與WindowsFormsHost控件兼容問題的解決方法

    這篇文章主要介紹了WPF中不規(guī)則窗體與WindowsFormsHost控件兼容問題的解決方法,對比以往的解決方案,給出了一個具有普遍性的技巧,具有一定的借鑒價值,需要的朋友可以參考下
    2014-11-11
  • winform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例

    winform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例

    下面小編就為大家?guī)硪黄獁inform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#?WPF調(diào)用QT窗口的方法

    C#?WPF調(diào)用QT窗口的方法

    本文主要介紹了C#?WPF調(diào)用QT窗口的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • c#學(xué)習(xí)之30分鐘學(xué)會XAML

    c#學(xué)習(xí)之30分鐘學(xué)會XAML

    一個界面程序的核心,無疑就是界面和后臺代碼,而xaml就是微軟為構(gòu)建應(yīng)用程序界面而創(chuàng)建的一種描述性語言,也就是說,這東西是搞界面的
    2016-11-11
  • C# SqlSugar批量執(zhí)行SQL語句及批量更新實體對象的操作方法

    C# SqlSugar批量執(zhí)行SQL語句及批量更新實體對象的操作方法

    SqlSugar 是一款 老牌 .NET開源ORM框架,由果糖大數(shù)據(jù)科技團隊維護和更新 ,開箱即用最易上手的ORM,這篇文章主要介紹了C# SqlSugar批量執(zhí)行SQL語句以及批量更新實體對象,需要的朋友可以參考下
    2024-07-07
  • C#中匿名方法與委托的關(guān)系介紹

    C#中匿名方法與委托的關(guān)系介紹

    這篇文章介紹了C#中匿名方法與委托的關(guān)系,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08

最新評論