[.net]監控檔案系統的目錄變更或檔案變更(FileSystemWatcher)
使用FileSystemWatcher這個class就對囉
public partial class Form1 : Form
{
	
	FileSystemWatcher fsw;
	#region Form Load
	public Form1()
	{
		InitializeComponent();
	}
	private void Form1_Load(object sender, EventArgs e)
	{
		//要監控的資料夾
		fsw = new FileSystemWatcher(@"C:\message\CollectorWorker_Log_Live-1\Message\2017\03\22");
		btnStart.Enabled = true;
		btnStop.Enabled = false;
	}
	#endregion
	#region click事件
	//開始監控
	private void btnStart_Click(object sender, EventArgs e)
	{
		//是否監控子目錄
		fsw.IncludeSubdirectories = true;
		//設定所要監控的變更類型
		//不註明就是全部都監控
		fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
		//設定所要監控的檔案,ex:*.txt
		fsw.Filter = "*.*";
		
		//Created, Changed, Deleted, Renamed....更多可上msdn查詢
		fsw.Created += new FileSystemEventHandler(fsw_Created);
		//允許觸發事件
		fsw.EnableRaisingEvents = true;
		btnStart.Enabled = false;
		btnStop.Enabled = true;
	}
	//停止監控
	private void btnStop_Click(object sender, EventArgs e)
	{
		fsw.EnableRaisingEvents = false;
		fsw.Created -= new FileSystemEventHandler(fsw_Created);
		fsw.Dispose();
		btnStop.Enabled = false;
		btnStart.Enabled = true;
	}
	#endregion
	#region 事件
	private void fsw_Created(object sender, FileSystemEventArgs e)
	{            
		MessageBox.Show(e.Name + "  " + e.ChangeType + "  " + e.FullPath);
	}
	#endregion
 
}
執行結果:

大概是這樣………
參考文章:
FileSystemWatcher 類別應用實例
https://dotblogs.com.tw/dotnetfactory/archive/2008/04/10/2780.aspx
C# - 使用 FileSystemWatcher 來監控資料夾下的文件
https://dotblogs.com.tw/dc690216/archive/2010/09/18/17801.aspx
FileSystemWatcher -- 當目錄或目錄內的檔案變更時,接聽 (Listen) 檔案系統變更告知並引發事件
https://dotblogs.com.tw/mis2000lab/archive/2009/03/17/filesystemwatcher_20090317.aspx