C# 按名称获取正在运行的进程的路径

C# 按名称获取正在运行的进程的路径,c#,.net-2.0,C#,.net 2.0,如何按名称获取正在运行的进程的路径?例如,我知道有一个名为“notepad”的进程正在运行,我想知道它的路径。如何在不循环所有其他进程的情况下获得路径 不是这样 using System.Diagnostics; foreach (Process PPath in Process.GetProcesses()) { if (PPath.ProcessName.ToString() == "notepad") { string fullpath = PPath.M

如何按名称获取正在运行的进程的路径?例如,我知道有一个名为“notepad”的进程正在运行,我想知道它的路径。如何在不循环所有其他进程的情况下获得路径

不是这样

using System.Diagnostics;

foreach (Process PPath in Process.GetProcesses())
{
    if (PPath.ProcessName.ToString() == "notepad")
    {
        string fullpath = PPath.MainModule.FileName;
        Console.WriteLine(fullpath);
    }
}

尝试类似此方法的方法,该方法使用:

但是请记住,多个进程可以具有相同的名称,因此您可能仍然需要进行一些挖掘。我总是在这里返回第一个路径。

在.Net 2.0中存在一种方法:

foreach (Process PPath in Process.GetProcessesByName("notepad"))
{
    string fullpath = PPath.MainModule.FileName;
    Console.WriteLine(fullpath);
}

你可以采取两种方法

您可以按名称执行流程:

Process result = Process.GetProcessesByName( "Notepad.exe" ).FirstOrDefault( );
或者你可以做你所做的,但使用linq

Process element = ( from p in Process.GetProcesses()
                    where p.ProcessName == "Notepad.exe"
                    select p ).FirstOrDefault( );

你的意思是(string fullpath=System.Diagnostics.Process.getProcessByName(“记事本”).ToString();)吗?不,我没有。谢谢我修改了我的答案,使它更清楚我的意思。
Process element = ( from p in Process.GetProcesses()
                    where p.ProcessName == "Notepad.exe"
                    select p ).FirstOrDefault( );