如何在 C# 中通过 windows 资源管理器有效地监控系统范围 "file name change event"

How to monitor system-wide "file name change event" by windows explorer effectively in c#

只有在 windows 资源管理器中重命名文件时才需要跟踪。有什么方法可以有效地跟踪变化? "hook" 一个程序到 windows explorer 是否可以有效?

您可以在 System.IO

中使用 FileSystemWatcher
static void Main()
    {
        FileSystemWatcher w = new FileSystemWatcher(@"C:\temp");

        w.Renamed += w_Renamed;
        w.EnableRaisingEvents = true;
        // Wait for the user to quit the program.

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

    }

    static void w_Renamed(object sender, RenamedEventArgs e)
    {
       //Add your logic here
    }

注意 FileSystemWatcher 有一些限制 http://blogs.msdn.com/b/winsdk/archive/2015/05/19/filesystemwatcher-follies.aspx

更多信息请访问 https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.changed(v=vs.110).aspx