C# ProcessStartInfo.WorkingDirectory属性为空
我正在编写一个keep-alive服务,以查看进程是否已启动并正在运行。我有几个同名进程运行在不同的工作目录中 因此,我希望使用该属性作为唯一标识符。但是,当我询问所有这些属性时,该值为空 下面是一些代码:C# ProcessStartInfo.WorkingDirectory属性为空,c#,process,C#,Process,我正在编写一个keep-alive服务,以查看进程是否已启动并正在运行。我有几个同名进程运行在不同的工作目录中 因此,我希望使用该属性作为唯一标识符。但是,当我询问所有这些属性时,该值为空 下面是一些代码: foreach (Process process in Process.GetProcesses()) if (!string.IsNullOrWhiteSpace(process.StartInfo.WorkingDirectory)) Console.WriteL
foreach (Process process in Process.GetProcesses())
if (!string.IsNullOrWhiteSpace(process.StartInfo.WorkingDirectory))
Console.WriteLine("Winning!!!");
不用说,我不会赢。使用Process.MainModule和ProcessModule.FileName属性
foreach (Process process in Process.GetProcesses())
{
string executableFilePath = process.MainModule.FileName;
string executableDirectory = Path.GetDirectoryName(executableFilePath);
}
请注意,进程可能随时退出。如果在进程退出(或已退出)时同时查询进程的MainModule,则会引发异常