如何获取通过环境变量访问的文件的位置。
我希望它类似于 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
环境变量中的所有值并尝试每一个值。
关于c++ - 获取通过环境变量访问的文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603383/