C# 文件监听及获取文件信息

要在C#中监听文件的变化并获取文件信息,您可以使用FileSystemWatcher类。以下是一个示例,展示了如何使用FileSystemWatcher监听文件的创建、修改和删除事件,并获取文件的信息:
using System;
using System.IO;

public class FileWatcher
{
    private FileSystemWatcher watcher;

    public FileWatcher(string directory, string filter)
    {
        watcher = new FileSystemWatcher(directory, filter);
        // 设置要监视的文件事件类型
        watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.Size;
        // 添加事件处理程序
        watcher.Created += OnFileCreated;
        watcher.Changed += OnFileChanged;
        watcher.Deleted += OnFileDeleted;
    }

    public void Start()
    {
        watcher.EnableRaisingEvents = true;
    }

    public void Stop()
    {
        watcher.EnableRaisingEvents = false;
    }

    private void OnFileCreated(object sender, FileSystemEventArgs e)
    {
        // 文件创建事件处理程序
        Console.WriteLine($"File created: {e.Name}");
        GetFileInfo(e.FullPath);
    }

    private void OnFileChanged(object sender, FileSystemEventArgs e)
    {
        // 文件修改事件处理程序
        Console.WriteLine($"File changed: {e.Name}");
        GetFileInfo(e.FullPath);
    }

    private void OnFileDeleted(object sender, FileSystemEventArgs e)
    {
        // 文件删除事件处理程序
        Console.WriteLine($"File deleted: {e.Name}");
    }

    private void GetFileInfo(string filePath)
    {
        FileInfo fileInfo = new FileInfo(filePath);
        Console.WriteLine($"File path: {fileInfo.FullName}");
        Console.WriteLine($"File size: {fileInfo.Length} bytes");
        Console.WriteLine($"Last modified: {fileInfo.LastWriteTime}");
    }
}

使用示例:
string directory = @"C:\YourDirectory";
string filter = "*.txt";
FileWatcher fileWatcher = new FileWatcher(directory, filter);
fileWatcher.Start();

Console.WriteLine("Listening for file changes. Press any key to stop...");
Console.ReadKey();

fileWatcher.Stop();

在上述示例中,我们创建了一个FileWatcher类,它接受要监听的目录和文件筛选条件作为参数。然后,我们设置了要监视的文件事件类型,并为每个事件类型添加了相应的事件处理程序。当文件创建、修改或删除时,相应的事件处理程序将被调用,并显示文件的信息。
您可以根据自己的需求修改和扩展FileWatcher类,例如添加其他事件处理程序或过滤特定类型的文件。请注意,FileSystemWatcher类仅监听文件系统中的变化,因此要进行文件信息的获取,您需要使用FileInfo类。
 

  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BEN654776577

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值