c# 杀死占用某个文件的进程

 

需要使用微软提供的工具Handle.exe

            string fileName = @"H:\abc.dll";//要检查被那个进程占用的文件

            Process tool = new Process();
            tool.StartInfo.FileName = @"H:\软件\Handle\handle64.exe";
            tool.StartInfo.Arguments = fileName + " /accepteula";
            tool.StartInfo.UseShellExecute = false;
            tool.StartInfo.RedirectStandardOutput = true;
            tool.Start();
            tool.WaitForExit();
            string outputTool = tool.StandardOutput.ReadToEnd();

            string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)";
            foreach (Match match in Regex.Matches(outputTool, matchPattern))
            {
                Process.GetProcessById(int.Parse(match.Value)).Kill();
            }

            Console.ReadKey();

 

posted @ 2019-09-24 12:04  热敷哥  阅读(1711)  评论(0编辑  收藏  举报