您的位置:首页 > 运维架构

使用windows服务和.NET FileSystemWatcher对象来监控磁盘文件目录的改变

2011-07-19 10:34 826 查看
关于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:zheng331773812@hotmail.com(上班时在线) QQ:331773812

欢迎大家共同交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: