📜  c# file watcher 特定文件 - C# (1)

📅  最后修改于: 2023-12-03 14:39:42.976000             🧑  作者: Mango

使用C#的文件监视器特定文件

在编程中,有时候需要对某个文件的变化做出及时处理,例如在文件被修改后自动执行某个相关操作。C#提供了一个文件监视器(FileWatcher)类,可以实现对文件的监视和处理。

1. 引用命名空间

首先需要引用System.IO命名空间,因为该命名空间包含了FileWatcher类。

using System.IO;
2. 创建文件监视器

使用FileWatcher类可以创建文件监视器,定义监视的目录和需要监视的文件类型。

string path = @"C:\example";
string fileType = "*.txt";

FileSystemWatcher watcher = new FileSystemWatcher(path, fileType);
3. 监视事件

当文件发生变化时,FileWatcher类提供了多个事件可以监听,在事件中可以编写相关代码进行处理。

3.1 文件被创建事件

当监视目录下创建了符合需要的文件时,会触发该事件。

watcher.Created += new FileSystemEventHandler(OnCreated);

private void OnCreated(object sender, FileSystemEventArgs e)
{
    // TODO: 处理代码
}
3.2 文件被修改事件

当监视中的文件被修改时,会触发该事件。

watcher.Changed += new FileSystemEventHandler(OnChanged);

private void OnChanged(object sender, FileSystemEventArgs e)
{
    // TODO: 处理代码
}
3.3 文件被重命名事件

当监视中的文件被重命名时,会触发该事件。

watcher.Renamed += new RenamedEventHandler(OnRenamed);

private void OnRenamed(object sender, RenamedEventArgs e)
{
    // TODO: 处理代码
}
3.4 文件被删除事件

当监视中的文件被删除时,会触发该事件。

watcher.Deleted += new FileSystemEventHandler(OnDeleted);

private void OnDeleted(object sender, FileSystemEventArgs e)
{
    // TODO: 处理代码
}
4. 启动文件监视器

完成以上设置后,使用watcher.EnableRaisingEvents = true启动文件监视器。

watcher.EnableRaisingEvents = true;
5. 完整代码

以下是完整的代码示例:

using System.IO;

namespace FileWatcherExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\example";
            string fileType = "*.txt";

            FileSystemWatcher watcher = new FileSystemWatcher(path, fileType);
            
            watcher.Created += new FileSystemEventHandler(OnCreated);
            watcher.Changed += new FileSystemEventHandler(OnChanged);
            watcher.Renamed += new RenamedEventHandler(OnRenamed);
            watcher.Deleted += new FileSystemEventHandler(OnDeleted);
            
            watcher.EnableRaisingEvents = true;

            Console.WriteLine("Press 'Q' to quit the sample.");
            while (Console.Read() != 'Q') ;
        }

        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine($"Created: {e.Name}");
        }

        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine($"Changed: {e.Name}");
        }

        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed: {e.OldName} to {e.Name}");
        }

        private static void OnDeleted(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine($"Deleted: {e.Name}");
        }
    }
}

以上就是使用C#的文件监视器特定文件的介绍和代码示例,希望对大家有所帮助。