如何使用C#监控进程的IO活动?

Ani*_*jee 4 c# filesystemwatcher process

使用FileSystemWatcher,我们可以监视特定文件系统的IO活动,但无论如何都要知道哪个正在运行的进程导致该IO?

更具体地说,假设一个正在运行的进程即.abc.exe正在驱动器D上创建一个文件text.txt.我们可以使用FileSystemWatcher监视已在驱动器D中创建了一个名为text.txt的文件,但我们是否可以通过编程方式确定名为abc.exe的进程正在创建该特定文件在驱动器D?

Sam*_*eff 6

handle.exe 来自SysInternals的命令行工具允许以编程方式访问哪个程序打开了特定文件或目录.

C:\>handle.exe c:\Windows\system32\stdole2.tlb
Run Code Online (Sandbox Code Playgroud)

生成此输出:

Handle v3.42
Copyright (C) 1997-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
devenv.exe         pid: 5240    184: C:\Windows\System32\stdole2.tlb
Ssms.exe           pid: 5000    1F4: C:\Windows\System32\stdole2.tlb
Run Code Online (Sandbox Code Playgroud)

哪个可以通过编程方式解析.

http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx