在文件资源管理器中检测并记录复制/粘贴/删除/剪切操作

时间:2014-02-23 13:30:32

标签: c# .net explorer

我想检测并记录文件资源管理器操作,例如复制/剪切/删除/粘贴。

我已经阅读了FileSystemWatcher,但我也注意到它有一些问题,因为没有可用的复制/剪切事件,这可能会让我感到困惑。

  

操作系统和FileSystemWatcher对象将剪切和粘贴操作或移动操作解释为文件夹及其内容的重命名操作。如果将包含文件的文件夹剪切并粘贴到正在监视的文件夹中,则FileSystemWatcher对象仅将该文件夹报告为新文件夹,而不报告其内容,因为它们基本上仅重命名。

FileSystemWatcher正在将创建文件删除文件事件挂钩到已更改已重命名这些事件无法真正帮助我确定它是由用户还是其他进程制作的。此外,我无法100%确定文件发生了什么,无论是复制还是剪切等。

我还需要跟踪“从/到”的位置和文件的名称。

FileSystemWatcher是否有可以区分这些行为的替代方案?

1 个答案:

答案 0 :(得分:1)

我认为FileSystemWatcher在这种情况下会有用。您可以使用Changed事件,该事件在更改文件或目录时发生 - 例如复制/粘贴操作。

请参阅MSDN Documentation了解此事件以及类本身。请注意,您还可以使用其他事件进行删除/剪切操作。

事件使用的FileSystemEventArgs包含FullPathName的属性。