使用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: 在此处添加代码以执行停止服务所需的关闭操作。
        }
    }
}

另附广告:女朋友的淘宝网店,为她做宣传,希望大家别介意,http://iyseek.taobao.com  欢迎大家逛逛,嘿嘿!

如有需要帮助,请联系MSN:zheng331773812@hotmail.com(上班时在线)   QQ:331773812

欢迎大家共同交流!


原文地址:https://www.cnblogs.com/jsonzheng/p/2085066.html