如何检测新文件或修改过的文件 [英] How to detect new or modified files

查看:115
本文介绍了如何检测新文件或修改过的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现有两种解决方法, ReadDirectoryChangesW

I found there are two ways to approach it, ReadDirectoryChangesW and FindFirstChangeNotification.

我想知道两者之间在性能或其他方面有何不同?

I want to know what’s the difference between them, performance or otherwise?

推荐答案

这是为Winapi标记的,但无论如何我还是用.net对其进行了射击.

This is tagged for Winapi, but I give it a shot with .net anyway.

您可以为此使用System.IO中的FileSystemWatcher类.

You can use the FileSystemWatcher class from System.IO for this.

static void Main(string[] args)
{
    FileSystemWatcher fsw = new FileSystemWatcher("C:\\");
    fsw.Changed += new FileSystemEventHandler(fsw_Changed);
    fsw.Created += new FileSystemEventHandler(fsw_Created);
    fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
    fsw.EnableRaisingEvents = true;
    fsw.IncludeSubdirectories = true;
    fsw.Renamed += new RenamedEventHandler(fsw_Renamed);

    Console.Read();
}

static void fsw_Renamed(object sender, RenamedEventArgs e)
{
    Console.WriteLine("{0} was changed to {1}", e.OldName, e.Name);
}

static void fsw_Deleted(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} was deleted", e.Name);
}

static void fsw_Created(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} was created", e.Name);
}

static void fsw_Changed(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} was changed", e.Name);
}

这篇关于如何检测新文件或修改过的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆