Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ProcessStartInfo.WorkingDirectory属性为空_C#_Process - Fatal编程技术网

C# ProcessStartInfo.WorkingDirectory属性为空

C# ProcessStartInfo.WorkingDirectory属性为空,c#,process,C#,Process,我正在编写一个keep-alive服务,以查看进程是否已启动并正在运行。我有几个同名进程运行在不同的工作目录中 因此,我希望使用该属性作为唯一标识符。但是,当我询问所有这些属性时,该值为空 下面是一些代码: foreach (Process process in Process.GetProcesses()) if (!string.IsNullOrWhiteSpace(process.StartInfo.WorkingDirectory)) Console.WriteL

我正在编写一个keep-alive服务,以查看进程是否已启动并正在运行。我有几个同名进程运行在不同的工作目录中

因此,我希望使用该属性作为唯一标识符。但是,当我询问所有这些属性时,该值为空

下面是一些代码:

foreach (Process process in Process.GetProcesses())
    if (!string.IsNullOrWhiteSpace(process.StartInfo.WorkingDirectory))
        Console.WriteLine("Winning!!!");

不用说,我不会赢。

使用Process.MainModuleProcessModule.FileName属性

foreach (Process process in Process.GetProcesses())
{
    string executableFilePath = process.MainModule.FileName;
    string executableDirectory = Path.GetDirectoryName(executableFilePath);
}
请注意,进程可能随时退出。如果在进程退出(或已退出)时同时查询进程的MainModule,则会引发异常