热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#文件监控对象FileSystemWatcher实例,通过监控文件创建、修改、删除、重命名对服务器数据进行实时备份...

先上图,简单的windorm界面;此为最初的版本,后续会增加监听多个源目录的功能、log功能、进度条展示功能等。1、初始化监听

先上图,简单的windorm界面;此为最初的版本,后续会增加监听多个源目录的功能、log功能、进度条展示功能等。

1、初始化监听

///

/// 初始化监听/// /// 需要监听的目录/// 需要监听的文件类型(筛选器字符串)/// 是否启用监听/// 是否监听子目录private static void WatcherStrat(string StrWarcherPath, string FilterType, bool IsEnableRaising, bool IsInclude){//初始化监听
watcher.BeginInit();//设置监听文件类型watcher.Filter = FilterType;//设置是否监听子目录watcher.IncludeSubdirectories = IsInclude;//设置是否启用监听?watcher.EnableRaisingEvents = IsEnableRaising;//设置需要监听的更改类型(如:文件或者文件夹的属性,文件或者文件夹的创建时间;NotifyFilters枚举的内容)watcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;//设置监听的路径watcher.Path = StrWarcherPath;//注册创建文件或目录时的监听事件//watcher.Created += new FileSystemEventHandler(watch_created);//注册当指定目录的文件或者目录发生改变的时候的监听事件watcher.Changed += new FileSystemEventHandler(watch_changed);//注册当删除目录的文件或者目录的时候的监听事件watcher.Deleted += new FileSystemEventHandler(watch_deleted);//当指定目录的文件或者目录发生重命名的时候的监听事件watcher.Renamed += new RenamedEventHandler(watch_renamed);//结束初始化
watcher.EndInit();}

2、启动或者停止监听

///

/// 启动或者停止监听/// /// True:启用监听,False:关闭监听private void WatchStartOrSopt(bool IsEnableRaising){watcher.EnableRaisingEvents = IsEnableRaising;}

3、监听以后的事件

///

/// 创建文件或者目录时的监听事件/// /// /// private static void watch_created(object sender, FileSystemEventArgs e){FugaiFile m = new FugaiFile();m.sender = sender;m.e = e;Thread t = new Thread(new ThreadStart(m.C));t.Start(); //启动线程
}private static void watch_changed(object sender, FileSystemEventArgs e){FugaiFile m = new FugaiFile();m.sender = sender;m.e = e;Thread t = new Thread(new ThreadStart(m.C));t.Start();}private static void watch_deleted(object sender, FileSystemEventArgs e){//事件内容MessageBox.Show("监听到删除事件" + e.FullPath);}private static void watch_renamed(object sender, RenamedEventArgs e){FugaiFile m = new FugaiFile();m.sender = sender;m.e = e;Thread t = new Thread(new ThreadStart(m.C));t.Start();}

 

此处采用多线程的方式去复制文件,下面是复制文件的类

class FugaiFile{public object sender;public FileSystemEventArgs e;public void C(){//MessageBox.Show("监听到修改事件" + e.FullPath);//MessageBox.Show(e.Name + "监听到创建事件" + e.FullPath);String fullname = e.FullPath;string newpath = fullname.Replace(srcPath, TargetPath).Replace("\\" + e.Name, "");DirectoryInfo newFolder = new DirectoryInfo(newpath);if (!newFolder.Exists){newFolder.Create();}FileInfo aa = new FileInfo(e.FullPath);aa.CopyTo(newpath + "\\" + e.Name, true);}}

 

转:https://www.cnblogs.com/lovejunjuan/p/9269289.html



推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • Tornado框架中模块与静态文件的应用
    本文详细介绍了Tornado框架中模块和静态文件的使用方法。首先明确模块与模板的区别,然后通过具体的代码示例展示如何在HTML文档中使用模块,并配置模块的路由。最后,提供了模块类中参数获取的示例。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流
    字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInput ... [详细]
author-avatar
风之云织2004
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有