LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#中使用FileSystemWatcher监控文件夹变动

admin
2025年6月27日 15:26 本文热度 61
在软件开发中,我们经常需要监控文件夹中的文件变动情况,比如文件的创建、修改、删除等。在C#中,`FileSystemWatcher`类提供了一种方便的方式来实现这一功能。本文将通过一个具体的示例,展示如何使用`FileSystemWatcher`来监控文件夹中的文件变动。

这使得我们能够实时响应文件系统的变动,执行相应的操作。

以下是一个简单的示例,展示如何使用`FileSystemWatcher`来监控一个文件夹中的`.txt`文件变动情况,并在控制台输出变动信息。

```csharpusing System;using System.IO;
namespace FileSystemWatcherDemo{    class Program    {        static void Main(string[] args)        {            // 设置要监控的文件夹路径            string pathToWatch = @"C:\path\to\directory";
            // 创建FileSystemWatcher对象            using (FileSystemWatcher watcher = new FileSystemWatcher())            {                watcher.Path = pathToWatch;
                // 监控的文件类型                watcher.Filter = "*.txt";
                // 是否监控子目录                watcher.IncludeSubdirectories = true;
                // 监控的事件类型                watcher.NotifyFilter = NotifyFilters.LastWrite                                        | NotifyFilters.FileName                                        | NotifyFilters.DirectoryName;
                // 当文件发生变化时调用的事件处理程序                watcher.Changed += OnChanged;                watcher.Created += OnChanged;                watcher.Deleted += OnDeleted;                watcher.Renamed += OnRenamed;
                // 开始监控                watcher.EnableRaisingEvents = true;
                // 等待用户退出程序                Console.WriteLine("Press 'q' to quit the sample.");                while (Console.Read() != 'q') ;            }        }
        // 当文件发生更改时调用的事件处理程序        private static void OnChanged(object source, FileSystemEventArgs e)        {            // 输出文件的完整路径            Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");        }
        // 当文件被删除时调用的事件处理程序        private static void OnDeleted(object source, FileSystemEventArgs e)        {            // 输出文件的完整路径            Console.WriteLine($"File: {e.FullPath} has been deleted");        }
        // 当文件被重命名时调用的事件处理程序        private static void OnRenamed(object source, RenamedEventArgs e)        {            // 输出文件的旧路径和新路径            Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");        }    }}```

初始化`FileSystemWatcher`对象:首先,我们创建了一个`FileSystemWatcher`对象,并设置了要监控的文件夹路径。

设置监控参数:我们设置了监控的文件类型为`.txt`,并且监控子目录。同时,我们设置了监控的事件类型,包括文件的最后写入时间、文件名和目录名。

注册事件处理程序:我们为`Changed`、`Created`、`Deleted`和`Renamed`事件注册了事件处理程序。当这些事件发生时,相应的事件处理程序会被调用。

开始监控:通过设置`EnableRaisingEvents`属性为`true`,我们开始了文件监控。

事件处理程序:在事件处理程序中,我们输出了文件的完整路径和发生的事件类型,以便我们能够实时了解文件系统的变动情况。


通过使用`FileSystemWatcher`类,我们可以方便地监控文件夹中的文件变动情况,并根据需要执行相应的操作。这在很多应用场景中都非常有用,比如自动备份、实时同步等。希望这个示例能够帮助你理解如何使用`FileSystemWatcher`来监控文件系统的变动。


- EOF -


该文章在 2025/6/27 15:26:16 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved