代码之家  ›  专栏  ›  技术社区  ›  Anindya Chatterjee

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

  •  4
  • Anindya Chatterjee  · 技术社区  · 14 年前

    使用FileSystemWatcher,我们可以监视特定文件系统的IO活动,但是否知道哪个正在运行的进程导致了该IO?

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

    3 回复  |  直到 14 年前
        1
  •  6
  •   Samuel Neff    14 年前

    handle.exe from SysInternals是一个命令行工具,它允许对打开了特定文件或目录的程序进行编程访问。

    C:\>handle.exe c:\Windows\system32\stdole2.tlb
    

    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
    

    可以通过编程方式进行分析。

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

        2
  •  1
  •   Hans Passant    14 年前

        3
  •  0
  •   Dave Swersky    14 年前

    我建议使用SysInternals实用程序,而不是自己滚动。

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