如何获取通过环境变量访问的文件的位置。
我希望它像Windows命令提示符中的where命令。
我当前正在使用_popen("where python","r");,但是它会短暂打开一个dos窗口。
我已经研究了在没有dos窗口的情况下使用_popen的方法,而CreateProcess对于这种简单的操作似乎有些过分了。

最佳答案

只要您愿意在文件上加上扩展名,SearchPath就可以满足要求。如:

WCHAR buffer[MAX_PATH];
DWORD result = SearchPath(NULL, L"python.exe", NULL, MAX_PATH, buffer, NULL);
if (result > 0)
{
    std::wcout << buffer << std::endl;
}


如果在文件名上添加扩展名太多,则可以遍历PATHEXT环境变量中的所有值,然后尝试每个。

10-08 08:28
查看更多