ang*_*son 11 .net windows executable path
澄清:问题是:我如何找到Mercurial命令行客户端.如果答案适用于任何可执行文件,那就更好了,但我真的对hg.exe可执行文件感兴趣.
如果我知道可执行文件的名称,比如hg.exeMercurial命令行客户端,并且Windows知道它的位置,因为我只能hg log从命令提示符执行它并执行,为了让我自己找到该可执行文件,涉及哪些步骤,以与命令提示符和Windows相同的方式执行此操作?
基本上,如果Windows能够找到它,我希望我的程序能够找到它.
是否有WinAPI功能或类似功能?代码将在.NET中运行,用C#编写,所以如果.NET中有任何内置的东西,那将是首选的解决方案,但除此之外,我不会对此使用P/Invoke不利.
我已经看到了这个问题的一个潜在重复:c#检查Windows路径中是否存在可执行文件,但是它是否存在?只是遍历PATH环境变量的内容并在每个目录中查找可执行文件?
我有一个模糊的概念,那只是所涉及的步骤之一,并且可能存在Windows可以使用的注册表覆盖,我应该知道,所以我将在这里发布问题.
另一方面,如果这里只有PATH变量,它可以安全地作为副本关闭.
你可以欺骗并使用where.exe命令
public GetFullPath(string program)
{
string result;
Process myProcess = new Process()
{
UseShellExecute = false,
RedirectStandardOutput = true,
StartInfo = new ProcessStartInfo(@"%SYSTEMDIR%\where.exe" )
};
using (StreamReader sr = myProcess.StandardOutput)
{
myProcess.Start();
result = myStreamReader.ReadLine();
myProcess.Close();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7297 次 |
| 最近记录: |