c++ - 获取通过环境变量访问的文件的位置

标签 c++ windows environment-variables

如何获取通过环境变量访问的文件的位置。 我希望它类似于 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/

相关文章:

python - os.environ 没有设置环境变量

c++ - in 或 for_each 哪个更适合 each?

Windows 单向链表 (_SINGLE_LIST_ENTRY)

webpack - 在 Webpack 中使用 Babel Loader 时如何设置 Babel 环境变量(BABEL_ENV)?

python - 如何使用 `fixture` 和 `parametrize` 为 pytest 测试设置环境变量

c - 如何在 Windows DNS 服务器树中搜索特定 SRV 服务?

c++ - 是否可以在 lambda 中捕获可变数量的参数?

c++ - 在安装程序中包含 pdbs?

c++ - 迭代 C++ 可变参数模板

c++ - 来自消息泵的不同线程上的 DirectX 即时上下文