最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中FileSystemWatcher的使用教程

 更新時(shí)間:2020年12月18日 09:17:09   作者:碼農(nóng)讀書(shū)  
這篇文章主要給大家介紹了關(guān)于C#中FileSystemWatcher使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

開(kāi)局一張圖,在 System.IO 下的 FileSystemWatcher 常用于監(jiān)視文件系統(tǒng)的變更,當(dāng)文件系統(tǒng)中的文件或者文件夾被修改會(huì)自動(dòng)觸發(fā)相應(yīng)的回調(diào)事件。

為了能夠了解 FileSystemWatcher 是怎么運(yùn)作的,你可以指定一個(gè)被監(jiān)視的文件夾,當(dāng)被監(jiān)視的文件夾修改后,大概會(huì)觸發(fā)如下的一些事件。

  • Changed: 當(dāng)文件或者文件夾已經(jīng)完成修改時(shí)觸發(fā)此事件
  • Created:當(dāng)文件或者文件夾已經(jīng)成功創(chuàng)建觸發(fā)此事件
  • Deleted:當(dāng)文件或者文件夾已經(jīng)成功刪除觸發(fā)此事件
  • Error:當(dāng)變更的過(guò)程中發(fā)生錯(cuò)誤觸發(fā)此事件。
  • Renamed:當(dāng)文件或者文件夾已經(jīng)成功被重命名時(shí)觸發(fā)此事件

創(chuàng)建一個(gè)簡(jiǎn)單的 file 監(jiān)視

接下來(lái)我們?cè)?Visual Studio 中創(chuàng)建一個(gè) Console 程序,用來(lái)了解如何進(jìn)行文件監(jiān)視,不過(guò)建議把 Console 部署成 Windows Service,這樣方便在系統(tǒng)中常駐監(jiān)控,一旦被監(jiān)視的路徑發(fā)生變更就會(huì)自動(dòng)發(fā)出通知事件。

該說(shuō)的都說(shuō)了,接下來(lái)一起研究代碼吧。

    static void Main(string[] args)
    {
      string path = @"D:\IDG";

      MonitorDirectory(path);

      Console.ReadKey();
    }

下面的代碼片段展示了 MonitorDirectory 方法的內(nèi)部邏輯,這個(gè)方法可用于監(jiān)視指定的文件夾并且當(dāng)文件夾變更時(shí)觸發(fā)事件,可以看到文件夾路徑是通過(guò)參數(shù)傳進(jìn)去的。

    private static void MonitorDirectory(string path)
    {
      FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();

      fileSystemWatcher.Path = path;

      fileSystemWatcher.Created += FileSystemWatcher_Created;
      fileSystemWatcher.Renamed += FileSystemWatcher_Renamed;

      fileSystemWatcher.Deleted += FileSystemWatcher_Deleted;

      fileSystemWatcher.EnableRaisingEvents = true;
    }

可以著重了解一下上面的 event 是如何被灌入的,而且我還寫(xiě)了一句 fileSystemWatcher.EnableRaisingEvents = true, 這是什么意思呢?表示當(dāng)前的路徑正式開(kāi)始被監(jiān)控,一旦監(jiān)控的路徑出現(xiàn)變更,F(xiàn)ileSystemWatcher 中的指定事件將會(huì)被觸發(fā)。

掃一下上面定義的各個(gè) event 事件,分別都定義了該事件的處理函數(shù),比如說(shuō):FileSystemWatcher_Created,F(xiàn)ileSystemWatcher_Renamed,FileSystemWatcher_Deleted ,顯而易見(jiàn)觸發(fā)某一個(gè)事件就會(huì)觸發(fā)它的事件處理函數(shù),對(duì)吧,具體代碼如下:

    private static void FileSystemWatcher_Created(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File created: {0}", e.Name);
    }

    private static void FileSystemWatcher_Renamed(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File renamed: {0}", e.Name);
    }

    private static void FileSystemWatcher_Deleted(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File deleted: {0}", e.Name);
    }

下面是完整的可供參考的代碼清單。

using System;

using System.IO;

namespace IDGFileSystemWatcher
{
  class Program
  {
    static void Main(string[] args)
    {
      string path = @"D:\IDG";
      MonitorDirectory(path);
      Console.ReadKey();
    }
    private static void MonitorDirectory(string path)
    {
      FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
      fileSystemWatcher.Path = path;
      fileSystemWatcher.Created += FileSystemWatcher_Created;
      fileSystemWatcher.Renamed += FileSystemWatcher_Renamed;
      fileSystemWatcher.Deleted += FileSystemWatcher_Deleted;
      fileSystemWatcher.EnableRaisingEvents = true;
    }

    private static void FileSystemWatcher_Created(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File created: {0}", e.Name);
    }

    private static void FileSystemWatcher_Renamed(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File renamed: {0}", e.Name);
    }

    private static void FileSystemWatcher_Deleted(object sender, FileSystemEventArgs e)
    {
      Console.WriteLine("File deleted: {0}", e.Name);
    }
  }
}

假設(shè) IDG 文件夾是在 E 盤(pán)內(nèi),接下來(lái)把 Console 運(yùn)行起來(lái),然后在 IDG 文件夾內(nèi)創(chuàng)建一個(gè)新文件,不出意外的話(huà),你會(huì)觀察到這個(gè)新建的文件名將會(huì)出現(xiàn)在 控制臺(tái) 上,說(shuō)明 FileSystemWatcher_Created 被成功觸發(fā),參考下圖:

譯文鏈接:https://www.infoworld.com/article/3185447/how-to-work-with-filesystemwatcher-in-c.html

到此這篇關(guān)于C#中FileSystemWatcher使用教程的文章就介紹到這了,更多相關(guān)C# FileSystemWatcher使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 預(yù)處理器指令的用法

    C# 預(yù)處理器指令的用法

    本文主要介紹了C# 預(yù)處理器指令的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C# WinForm實(shí)現(xiàn)鼠標(biāo)穿透功能

    C# WinForm實(shí)現(xiàn)鼠標(biāo)穿透功能

    在WinForm開(kāi)發(fā)時(shí),會(huì)用到這樣一個(gè)場(chǎng)景,給屏幕增加水印Logo,但不影響畫(huà)面的操作,這里就會(huì)用到鼠標(biāo)穿透功能,下面我們就來(lái)學(xué)習(xí)一下鼠標(biāo)穿透功能的具體實(shí)現(xiàn)吧
    2023-11-11
  • C#中兩個(gè)byte如何相加

    C#中兩個(gè)byte如何相加

    可能有的看到這個(gè)題目就會(huì)覺(jué)得這不簡(jiǎn)單嗎?直接用+號(hào)相加就行了,可是當(dāng)你實(shí)際操作運(yùn)行的時(shí)候就會(huì)發(fā)現(xiàn)有錯(cuò)誤了,那么是什么錯(cuò)誤?那該如何讓C#中兩個(gè)byte相加呢?通過(guò)下面這篇文章來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • C#實(shí)現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口

    C#實(shí)現(xiàn)IDbConnection/IDbCommand等相關(guān)通用數(shù)據(jù)接口

    ADO.NET?中的數(shù)據(jù)提供者對(duì)象提供了IDbConnection、IDbCommand、IDbDataParameter等通用數(shù)據(jù)接口,本文將利用這些對(duì)象實(shí)現(xiàn)一個(gè)通用方法以訪問(wèn)和操作數(shù)據(jù)庫(kù)內(nèi)容,需要的朋友可以參考下
    2024-04-04
  • 利用C#版OpenCV實(shí)現(xiàn)圓心求取實(shí)例代碼

    利用C#版OpenCV實(shí)現(xiàn)圓心求取實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于如何利用C#版OpenCV實(shí)現(xiàn)圓心求取的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • C#?將?Stream?保存到文件的方法

    C#?將?Stream?保存到文件的方法

    這篇文章主要介紹了C#將?Stream保存到文件的方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • C#:(變量)字段和局部變量的作用域沖突

    C#:(變量)字段和局部變量的作用域沖突

    C#:字段和局部變量的作用域沖突,需要的朋友可以參考一下
    2013-02-02
  • 詳解C# Protobuf如何做到0分配內(nèi)存的序列化

    詳解C# Protobuf如何做到0分配內(nèi)存的序列化

    這篇文章主要介紹了詳解C# Protobuf如何做到0分配內(nèi)存的序列化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • C#獲取網(wǎng)頁(yè)源代碼的方法

    C#獲取網(wǎng)頁(yè)源代碼的方法

    這篇文章主要介紹了C#獲取網(wǎng)頁(yè)源代碼的方法,涉及C#基于自定義函數(shù)讀取網(wǎng)頁(yè)html代碼的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • json格式數(shù)據(jù)分析工具PageElement類(lèi)分享(仿Session寫(xiě)法)

    json格式數(shù)據(jù)分析工具PageElement類(lèi)分享(仿Session寫(xiě)法)

    json格式數(shù)據(jù)分析工具PageElement類(lèi)分享,可像Session一樣自由獲取Json元素的Key與Value。并可方便與ADO進(jìn)行交互
    2013-12-12

最新評(píng)論

牙克石市| 彰化县| 阳东县| 黄陵县| 白沙| 光泽县| 安化县| 麟游县| 廉江市| 阳朔县| 华阴市| 贵南县| 蒙自县| 务川| 四会市| 潢川县| 若羌县| 托里县| 崇明县| 六盘水市| 恩施市| 玉山县| 汝阳县| 容城县| 河池市| 班玛县| 拜城县| 双城市| 青阳县| 稻城县| 松桃| 洱源县| 农安县| 抚远县| 惠安县| 博客| 当涂县| 临桂县| 廊坊市| 祁阳县| 南丹县|