FileSystemWatcher 监控文件变化

FileSystemWatcher 监控文件变化本文测试了FileSystemWatcher类监控文件变化。usingSystem;usingSystem.Security.Permissions;usingSystem.IO;namespaceConsoleApp1{publicclassFileStateWatcher{[PermissionSet(Secu…

大家好,又见面了,我是你们的朋友全栈君。

    本文测试了FileSystemWatcher 类监控文件变化。

using System;
using System.Security.Permissions;
using System.IO;

namespace ConsoleApp1
{
    public class FileStateWatcher
    {    
        [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        public static int Run()
        {
            FileSystemWatcher fsWatcher = new FileSystemWatcher();
            fsWatcher.Path = "E:\\Test";

            fsWatcher.NotifyFilter = NotifyFilters.LastAccess |    //上一次打开的日期。 
                                     NotifyFilters.LastWrite |     //上一次写入内容的日期
                                     NotifyFilters.FileName |      //文件名
                                     NotifyFilters.DirectoryName | //目录名
                                     NotifyFilters.Size;           //大小

            //监听子目录
            fsWatcher.IncludeSubdirectories = true;
            //监听文件类型
            fsWatcher.Filter = "*.txt";

            //添加事件处理
            fsWatcher.Changed += new FileSystemEventHandler(OnChanged);
            fsWatcher.Created += new FileSystemEventHandler(OnCreated);
            fsWatcher.Deleted += new FileSystemEventHandler(OnDeleted);
            fsWatcher.Renamed += new RenamedEventHandler(OnRenamed);

            fsWatcher.EnableRaisingEvents = true;       
            return 0;
        }
        //修改时的处理
        private static void OnChanged(Object source, FileSystemEventArgs e)
        {
            Console.WriteLine("File: {0} {1}", e.FullPath, e.ChangeType);
        }
        //重命名时的处理
        private static void OnRenamed(Object source, FileSystemEventArgs e)
        {
            Console.WriteLine("File: {0} {1}", e.FullPath, e.ChangeType);
        }
        //删除时的处理
        private static void OnDeleted(object source, FileSystemEventArgs e)
        {
            Console.WriteLine("File: {0} {1}", e.FullPath, e.ChangeType);
        }
        //创建时的处理
        private static void OnCreated(object source, FileSystemEventArgs e)
        {
            Console.WriteLine("File: {0} {1}", e.FullPath, e.ChangeType);
        }
    };

    class Program
    {
        static void Main(string[] args)
        {
            FileStateWatcher.Run();
            // 输入q结束程序
            Console.WriteLine("Press q to quit the sample.");
            while (Console.Read() != 'q') ;
        }
    }
}

    上例中监控的目录是“E:\\Test”,在此目录下创建txt文件,命名为“log.txt”

    FileSystemWatcher 监控文件变化

    运行结果:

    FileSystemWatcher 监控文件变化

    本例仅仅打印了发生变化的文件名及变化类型。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149390.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数组反转两种方法[通俗易懂]

    数组反转两种方法[通俗易懂]//数组反转 for(inti=0;i<arr.length/2;i++){ Stringt=””; t=arr[i]; arr[i]=arr[arr.length-1-i];//length-1 arr[arr.length]=t; } //方法二 for(inti=0,j=arr.length;i<arr.length/2;i++,j–){ Stringt=arr[i..

    2022年5月20日
    36
  • nginx和apache的区别,选择哪个好?

    nginx和apache的区别,选择哪个好?Apache和Nginx最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;而nginx是异步的,多个连接(万级别)可以对应一个进程。下面本篇文章就来给大家介绍一下Apache和Nginx的区别有那些,选择哪个好?希望对你们有所帮助。一、Nginx特点  1、轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源。  2、抗并发,nginx以epollandkqueue作为开发模型,处理请求是异步非阻塞的,负载能力比apache高很多,而apache则.

    2022年5月24日
    32
  • Linux IP Masquerade[通俗易懂]

    Linux IP Masquerade[通俗易懂]PMasquerade是Linux发展中的一种网路功能.如果一台Linux主机使用IPMasquerade功能连线到网际网路上,那麽接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的IP位址.这使得一些电脑可以隐藏在闸道(gateway)系统後面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网络

    2022年6月16日
    23
  • Java之XML的使用「建议收藏」

    Java之XML的使用「建议收藏」一.xml的定义和优势:(1).定义:在描述一些有结构性的数据时应当使用XML来描述,例如:用户信息/省市结构等XML(eXtensibleMarkupLanguage),是一种可扩展的标记语言,类似HTML。XML技术是W3C组织(WorldWideWebConsortium万维网联盟)发布的,目前遵循的是W3C组织于1998年发布的XML1.0规范。HTML:显示页面,网…

    2022年7月7日
    22
  • 基于Redis实现DelayQueue延迟队列设计方案(附源码)「建议收藏」

    基于Redis实现DelayQueue延迟队列设计方案(附源码)「建议收藏」应用场景创建订单10分钟之后自动支付叫预约单专车出行前30分钟发送短信提示订单超时取消…等等…实现方式最简单的方式,定时扫表;例如每分钟扫表一次十分钟之后未支付的订单进行主动支付;优点:简单缺点:每分钟全局扫表,浪费资源,有一分钟延迟使用RabbitMq实现RabbitMq实现延迟队列优点:开源,现成的稳定的实现方案;缺点:RabbitMq是一个…

    2022年5月3日
    70
  • makefile 常用函数notdir、wildcard、patsubst

    notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~ 1、makefile里的函数makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样return=$(functionname arg1,

    2022年4月7日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号