Acc*_*ate 5 c# windows command-prompt
有没有办法在不执行"where"命令提示符命令的情况下动态地在C#中找到路径?
例如,如果我想找到mspaint exe,我可以在命令提示符下键入它
where mspaint
Run Code Online (Sandbox Code Playgroud)
它返回路径.
我不认为Common Language Runtime中有一个内置的方法为你做这个,但你当然可以自己做:
PATH环境变量的值;分隔符上拆分它以获取路径中的目录列表program例:
public static string FindInPath(string filename)
{
var path = Environment.GetEnvironmentVariable("PATH");
var directories = path.Split(';');
foreach (var dir in directories)
{
var fullpath = Path.Combine(dir, filename);
if (File.Exists(fullpath)) return fullpath;
}
// filename does not exist in path
return null;
}
Run Code Online (Sandbox Code Playgroud)
不要忘记添加.exe文件名.(或者,你可以修改上面的代码,搜索任何可执行文件扩展名:.bat,.com,.exe,或者甚至在所有的任何扩展).