需要使用微软提供的工具Handle.exe
string fileName = @"H:abc.dll";//要检查被那个进程占用的文件 Process tool = new Process(); tool.StartInfo.FileName = @"H:软件Handlehandle64.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+)(d+)(?=s+)"; foreach (Match match in Regex.Matches(outputTool, matchPattern)) { Process.GetProcessById(int.Parse(match.Value)).Kill(); } Console.ReadKey();