How do I get the list of open file handles by process in C#?

后端 未结 7 1591
春和景丽
春和景丽 2020-11-22 13:01

How do I get the list of open file handles by process id in C#?

I\'m interested in digging down and getting the file names as well.

Looking for the program

7条回答
  •  北恋
    北恋 (楼主)
    2020-11-22 14:01

    Have a look at this file : http://vmccontroller.codeplex.com/SourceControl/changeset/view/47386#195318

    And use:

    DetectOpenFiles.GetOpenFilesEnumerator(processID);
    

    Demo:

    using System;
    using System.Diagnostics;
    
    namespace OpenFiles
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var openFiles = VmcController.Services.DetectOpenFiles.GetOpenFilesEnumerator(Process.GetCurrentProcess().Id))
                {
                    while (openFiles.MoveNext())
                    {
                        Console.WriteLine(openFiles.Current);
                    }
                }
                Console.WriteLine();
                Console.ReadKey();
            }
        }
    }
    

    It has dependency over assembly System.EnterpriseServices

提交回复
热议问题