zoukankan      html  css  js  c++  java
  • 使用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

    欢迎大家共同交流!


  • 相关阅读:
    django框架的models
    图像的特征提取
    laravel框架学习
    机器学习--Classifier comparison
    java中的静态变量---static
    初次编程经历
    TERSUS笔记员工信息513-Tersus表格中勾选框升级处理
    TERSUS笔记员工信息512-Tersus勾选框全选和全不选的三种设定方法(转载+补充)
    TERSUS笔记员工信息511-Mysql查询
    TERSUS笔记员工信息510-css文字超出显示
  • 原文地址:https://www.cnblogs.com/jsonzheng/p/2085066.html
Copyright © 2011-2022 走看看