使用windows服務和.NET FileSystemWatcher對象來監控磁盤文件目錄的改變

關於FileSystemWatcher 類的詳細說明,大家可以去找找CSDN,或者在百度Google上搜下。

至於使用windows服務和.NET FileSystemWatcher對象來監控磁盤文件目錄的改變 我就直接貼代碼,如果有不明白的請大家直接聯繫我,聯繫方式在文章的下面。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;

namespace WindowsService
{
    partial class FileWatcherService : ServiceBase
    {
        public FileWatcherService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            // TODO: 在此處添加代碼以啓動服務。
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;   //指示監視是否應包含選定路徑下的目錄
            watcher.Created += new FileSystemEventHandler(watcher_FileCreated);
            watcher.Deleted += new FileSystemEventHandler(watcher_FileDeleted);
            watcher.Changed += new FileSystemEventHandler(watcher_FileChanged);
            watcher.Renamed += new RenamedEventHandler(watcher_FileRenamed);
            watcher.Path = @"C:\Temp";
            watcher.EnableRaisingEvents = true;
        }

        void watcher_FileCreated(object sender, FileSystemEventArgs e)
        {
            WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm") + " Create File:" + e.Name + "  File Path:" + e.FullPath);
        }

        void watcher_FileDeleted(object sender, FileSystemEventArgs e)
        {
            WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm") + " Delete File:" + e.Name + "  File Path:" + e.FullPath);
        }

        void watcher_FileChanged(object sender, FileSystemEventArgs e)
        {
            WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm") + " Change File:" + e.Name + "  File Path:" + e.FullPath);
        }

        void watcher_FileRenamed(object sender, FileSystemEventArgs e)
        {
            WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:ss:mm") + " Rename File:" + e.Name + "  File Path:" + e.FullPath);
        }

        private void WriteLog(string message)
        {
            FileStream fs = new FileStream(@"C:\Log.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
            StreamWriter sw = new StreamWriter(fs);
            sw.BaseStream.Seek(0, SeekOrigin.End);
            sw.WriteLine(message);
            sw.Close();
        }

        protected override void OnStop()
        {
            // TODO: 在此處添加代碼以執行停止服務所需的關閉操作。
        }
    }
}

使用.NET FileSystemWatcher對象監控磁盤文件目錄的改變

 

另附廣告:女朋友的淘寶網店,爲她做宣傳,希望大家別介意,http://iyseek.taobao.com  歡迎大家逛逛,嘿嘿!

如有需要幫助,請聯繫MSN:[email protected](上班時在線)   QQ:331773812

歡迎大家共同交流!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章