1. 程式人生 > 程式設計 >C# 監控 Windows 資料夾的方法

C# 監控 Windows 資料夾的方法

您是否為無法看到孩子在電腦上儲存的圖片而發愁,您是否為無法監控員工在電腦上儲存的東西而發愁,那麼今天給您推薦的這款產品絕對是您不二的選擇,它是由美國大廠生產,完全符合國際標準的產品,完美支援 Windows 98 以上系統,他就是 FileSystemWatcher 牌監控儀。他會偵聽檔案系統更改通知,並在目錄或目錄中的檔案更改時引發事件。下面我們就來看看他的細節。

零、細節特徵

1.常用的方法有:

OnChanged(FileSystemEventArgs)
當更改被監控目錄中檔案或目錄的大小,系統屬性,上次寫入時間,上次訪問時間或安全許可權時將呼叫這個事件。
OnCreated(FileSystemEventArgs)

在被監控的目錄中建立檔案或目錄時將呼叫這個事件。這裡需要注意的是雖然複製和移動並不是建立,但同樣會觸發這個事件。如果複製或移動檔案到被監控的目錄中,則將立即引發 OnCreated 事件,然後是一個或多個 OnChanged 事件。
OnDeleted(FileSystemEventArgs)
當刪除被監控的目錄中的檔案或目錄時處罰這個事件。當我們從被監控的目錄中剪切出去檔案時,也會觸發這個事件。
OnRenamed(RenamedEventArgs)
重新命名被監控目錄中的檔案或目錄時將呼叫這個方法。

2.常用屬性有:

Filter :獲取或設定用於確定目錄中要監視哪些檔案的過濾器字串。
IncludeSubdirectories:獲取或設定是否監控被監控目錄的子目錄。

InternalBufferSize:內部緩衝區大小,最大為64K,預設為8K。
NotifyFilter:獲取或設定哪些內容改變後需要被捕獲,可設定的型別如下:

C# 監控 Windows 資料夾的方法

path:需要監控的資料夾路徑

一、例子

using System;
using System.IO;
using static System.Console;
namespace FileSystemWatcherDemo
{
 class Program
 {
  static void Main(string[] args)
  {
   FileSystemWatcher fsw = new FileSystemWatcher();
   fsw.Path = @"d:\test";
   fsw.Filter = "*.txt";
   fsw.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.CreationTime | NotifyFilters.FileName;
   fsw.IncludeSubdirectories = true;
   fsw.InternalBufferSize = 64 * 1024;
   fsw.Created += Fsw_Created;
   fsw.Changed += Fsw_Changed;
   fsw.Deleted += Fsw_Deleted;
   fsw.Renamed += Fsw_Renamed;
   Read();
  }
  private static void Fsw_Renamed(object sender,RenamedEventArgs e)
  {
   WriteLine($"原名:{e.OldName} 新名稱:{e.Name}");
  }
  private static void Fsw_Deleted(object sender,FileSystemEventArgs e)
  {
   WriteLine($"{e.Name} 我被刪除了");
  }
  private static void Fsw_Changed(object sender,FileSystemEventArgs e)
  {
   WriteLine($"{e.Name} 我被修改了");
  }
  private static void Fsw_Created(object sender,FileSystemEventArgs e)
  {
   WriteLine($"{e.Name} 我被建立了");
  }
 }
}

總結

到此這篇關於C# 監控 Windows 資料夾的方法的文章就介紹到這了,更多相關C# 監控 Windows 資料夾內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!