路径不运行

问题描述:

我想从进程名的完整路径,而不运行process.In otherwords-其中C#得到,当它正在执行下列绝对路径:路径不运行

的Process.Start(StartInfo的);

startInfo不包含绝对路径。

+1

所以你只想要'WHERE'命令的C#等价物? – Gabe

+0

例如:我知道进程名称abc.exe。我想知道它的绝对路径。但不想运行它。 – user743246

+0

您可以使用'Process.Start'来执行Windows的'WHERE'命令,并读取输出。 –

可执行文件的完整路径通过%PATH%环境变量解决。您可以按如下方式复制行为:

var result = Environment.GetEnvironmentVariable("PATH") 
         .Split(';') 
         .Select(path => Path.Combine(path, "notepad.exe")) 
         .FirstOrDefault(path => File.Exists(path)); 

// result == "C:\\Windows\\system32\\notepad.exe" 
+2

您还必须检查当前目录。 –

使用标准Windows搜索策略:PATH环境变量中的当前文件夹和文件夹。

也许我误解了,但怎么样:

var fInfo = new FileInfo(startInfo.FileName); 
var fullPath = fInfo.FullName; 

+0

我知道进程名称abc.exe。我想知道它的绝对路径。但不想运行它。 – user743246

+0

我编辑后看到了吗? – y0uri