有没有办法列出 Windows 中特定进程当前打开的所有文件?
我的意思是文件有,但从未通过特定的过程fopen
得到。fclose
我尝试使用 Sysinternals 进程监视器,但我无法弄清楚如何列出当前打开的文件 – 但仅在打开时才列出。
答案1
你可以尝试 Sysinternals进程探索器而不是进程监视器。进程监视器旨在观察进程当时的行为。进程资源管理器更适合查看进程的当前状态;它是任务管理器,但功能是任务管理器的 10 倍左右。
Sysinternals 还有handle.exe
这是一个命令行工具,可以告诉您进程打开了哪些文件。
答案2
查看进程探索器来自 Sysinternals。
要查看某个进程的打开文件,请从列表中选择一个进程,然后选择“视图”->“下部面板视图”->“句柄”菜单选项。所有“文件”类型的句柄都是打开的文件。
另外,查找哪个应用程序打开了文件的一个好方法是使用 Find->Handle 或 DLL 菜单选项。只需输入您要查找的文件的名称,然后点击“搜索”即可找到与搜索字符串匹配的打开了文件的进程。
答案3
Sysinternals 的 Process Explorer 在处理文件句柄(相对于 DLL 等)时实际上没什么用。使用 Windows 资源监视器,单击“CPU”选项卡。在“关联句柄”旁边输入文件的名称,您将看到谁打开了该文件。
答案4
正如 Dave 所说,使用 SysInternals 的 Process Explorer,除此之外,它们还提供不同的实用程序集。检查:http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx