如何确定修改文件的最后一个进程?

时间:2009-05-05 02:16:12

标签: c# .net windows winapi

我知道如何让上次修改文件的用户,但Windows是否跟踪进行修改的过程?如果是这样,是否有用于查找的API?

5 个答案:

答案 0 :(得分:1)

没有。它没有记录。

您可以在特定文件夹上启用对象访问审核(我不建议在常规文件系统上使用)。请参阅此post并谨慎使用!

您可以使用.NET的FileSystemWatcher类。

答案 1 :(得分:0)

Windows不会跟踪修改文件的过程。您最希望的是积极观看您感兴趣的文件,并在应用程序打开它们时注意。我已经看过这样做的应用程序(例如,Sysinternals FileMon),但我不知道如何完成它。

答案 2 :(得分:0)

如果要在程序运行期间确定正在修改文件的进程,可以使用Windows API或minifilter驱动程序来跟踪系统上的每个进程正在执行的操作(类似于使用带有自定义的Sysinternals FileMon)过滤器,如Boo指出的那样,但这只适用于“捕获”程序的运行时。但是,一旦文件被修改,所有的痕迹都消失了。

答案 3 :(得分:0)

您是否可以使用Windows security auditing来记录对文件的访问权限?

答案 4 :(得分:0)

您可以使用https://live.sysinternals.com/procmon.exe中的procmon.exe 这是一个实时监控器,所以回溯性使用不多。

  1. 取消选中(取消选中)"文件|捕获事件"菜单项。
  2. 通过选择"编辑|来清除当前显示的事件明确 显示"菜单项。
  3. 按以下方式配置过滤器:

    一个。选择Process Monitor" Filter |过滤器..."菜单项。这将    显示"过程监控过滤器"对话框。

    湾通过设置匹配的"显示条目来设置新过滤器    条件"字段:

    ℃。 (选择)路径(选择)包含whatever.txt然后(选择)包含

    d。点击"添加"按钮添加新过滤器。

  4. 源自此处的说明:http://answers.perforce.com/articles/KB/3035