C#如何利用FileSystemWatcher控件实现的文件监控的具体示例分享


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要介绍了C#使用FileSystemWatcher控件实现的文件监控功能,结合实例形式分析了C# FileSystemWatcher组件的功能及监控文件更改情况的具体使用技巧,需要的朋友可以参考下

本文实例讲述了C#使用FileSystemWatcher控件实现的文件监控功能。分享给大家供大家参考,具体如下:

FileSystemWatcher

可以使用FileSystemWatcher组件监视文件系统,并对文件系统的改变作出反应。通过使用FileSystemWatcher组件,在特定的文件或目录被创建、修改或删除时,可以快速和便捷地启动业务流程。

例如,如果一组用户在合作处理一个存储在服务器共享目录下的文档时,可以使用FileSystemWatcher组件编写应用程序来监视对共享目录的更改情况。当检测到更改时,该组件可以运行处理过程,通过电子邮件通知每个用户。

可以配置组件来监视整个目录及其内容,或特定目录下一个特定的文件或一组文件。若要监视所有文件中的更改,应将Filter属性设置为空字符串("");若要监视特定的文件,应将Filter属性设置为该文件的文件名(例如,若要监视文件MyDoc.txt中的更改,将Filter属性设置为"MyDoc.txt");也可以监视特定文件类型中的更改,例如若要监视文本文件中的更改,将Fillter属性设置为"*.txt"。

【提示】不要忽略隐藏文件。

可监视目录或文件中的若干种更改。例如,可监视文件或目录的Attributes、LastWrite的日期和时间或Size的更改。通过将
FileSystemWatcher.NotifyFilter属性设置为NotifyFilters中的某个值,就可以实现这个目标。

还可以监视文件或目录的重命名、删除或创建。例如,若要监视文本文件的重命名,可将Filter属性设置为"*.txt",并调用一个WaitForChanged方法,并设置该方法中WatcherChangeTypes的值为Renamed。

下面举例说明。创建一个FileSystemWatche组件来监视运行时指定的目录。组件被设置用来监视LastWrite和LastAccess时间的更改,以及目录中文本文件的创建、删除或重命名。如果文件被更改、创建或删除,则文件的路径就会被输出到控制台。当一个文件被重命名时,旧的和新的路径都被输出到控制台。

实例 使用FileSystemWatche组件来监视运行时指定的目录:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

using System;

using System.IO;

public class watcher

{

  public static void Main(string[] args)

  {

    //如果没有指定目录,则退出程序

    if(args.Length!=1)

    {

      //显示调用程序的正确方法

      Console.WriteLine("usage:Watcher.exe(directory)");

      return;

    }

    //创建一个新的FileSystemWatcher并设置其属性

    FileSystemWatcher watcher=new FileSystemWatcher();

    watcher.Path=args[O];

    /*监视LastAcceSS和LastWrite时间的更改以及文件或目录的重命名*/

    watcher.NotifyFilter=NotifyFilters.LastAccess | NotifyFilters.LastWrite |

           NotifyFilters.FileName | NotifyFilters.DirectoryName;

    //只监视文本文件

    watcher.Filter="*.txt";

    //添加事件句柄

    //当由FileSystemWatcher所指定的路径中的文件或目录的

    //大小、系统属性、最后写时间、最后访问时间或安全权限

    //发生更改时,更改事件就会发生

    watcher.Changed +=new FileSystemEventHandler(OnChanged);

    //由FileSystemWatcher所指定的路径中文件或目录被创建时,创建事件就会发生

    watcher.Created +=new FileSystemEventHandler(OnChanged);

    //当由FileSystemWatcher所指定的路径中文件或目录被删除时,删除事件就会发生

    watcher.Deleted +=new FileSystemEventHandler(OnChanged) ;

    //当由FileSystemWatcher所指定的路径中文件或目录被重命名时,重命名事件就会发生

    watcher.Renamed +=new RenamedEventHandler(OnRenamed);

    //开始监视

    watcher.EnableRaisingEvents=true;

    //等待用户退出程序

    Console.WriteLine("Press\'q\' to quit the sample.");

    while(Console.Read()!='q');

  }

  //定义事件处理程序

  public static void OnChanged(object sender,FileSystemEventArgs e)

  {

    //指定当文件被更改、创建或删除时要做的事

    Console.WriteLine("file:"+e.FullPath+""+e.ChangeType);

  }

  public static void OnRenamed(object sender,RenamedEventArgs e)

  {

    //指定当文件被重命名时发生的动作

    Console.WriteLine("Fi]e:{0} renamed to{1}",e.OldFullPath,e.FullPath);

  }

}

以上就是C#如何利用FileSystemWatcher控件实现的文件监控的具体示例分享的详细内容!

Unity3D游戏开发实战教程打砖块游戏
教程

Unity3D游戏开发实战教程打砖块游戏

大漠老师

您将获得:掌握某些知识点、学会某些技巧(或思路)。大漠老师热衷游戏开发,技术分享,先后任职于光宇游戏、联众游戏等知名网络游戏软件公司,具有丰富的实战经验。


Unity3D游戏RollABall项目实战视频教程
教程

Unity3D游戏RollABall项目实战视频教程

大漠老师

您将获得:掌握某些知识点、学会某些技巧(或思路)。大漠老师热衷游戏开发,技术分享,先后任职于光宇游戏、联众游戏等知名网络游戏软件公司,具有丰富的实战经验。



Unity3D游戏实战换装系统视频教程
教程

Unity3D游戏实战换装系统视频教程

大漠老师

您将获得:掌握某些知识点、学会某些技巧(或思路)。讲师:大漠老师;热衷游戏开发,技术分享,先后任职于光宇游戏、联众游戏等知名网络游戏软件公司,具有丰富的实战经验。


C#上位机串口编程、Modbus编程
教程

C#上位机串口编程、Modbus编程

黄老师编程课堂

您将获得:1、熟练掌握Winform框架串口编程;2、掌握Modbus协议报文格式;3、掌握 C# Modbus协议编程;4、Modbus RTU、ASCII、TCP。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在


评论

管理员已关闭评论功能...