监视Windows资源管理器事件

时间:2014-02-18 10:44:13

标签: c# api events windows-explorer file-management

我正在创建一个管理某些文件的简单程序,该程序必须跟踪用户进行的文件移动。

(我现在并不担心捕捉所有正在运行的Windos Explorer的窗口以及保持程序始终在托盘栏中激活,但我可能会在稍后的另一个问题中提出这个问题)

所以,我需要的只是:

  • 以编程方式启动Windows资源管理器
  • 监控所有文件移动,创建和排除(由该窗口内的用户创建)

是否有与C#一起使用的API?

P.S:这是一个Winforms应用程序,所以如果有其他方法可以做到这一点,他们也会受到赞赏。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用FileSystemWatcher

初始化FileSystemWatcher

FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(@"E:\TestDir");
fileSystemWatcher.Changed += OnChanged;
fileSystemWatcher.Created += OnChanged;
fileSystemWatcher.Deleted += OnChanged;
fileSystemWatcher.Renamed += OnChanged;
fileSystemWatcher.EnableRaisingEvents = true;

OnChanged-Event:

private static void OnChanged(object sender, FileSystemEventArgs e)
    {
        WatcherChangeTypes watcherChangeTypes = e.ChangeType;
        string fullPath = e.FullPath;
        string name = e.Name;
    }