如何在Windows中获取当前用户的主目录

Ull*_*lan 7 c++ windows

如何获取当前用户主目录的路径?

例如:在Windows中,如果当前用户是"访客",我需要"C:\ Users\guest"

我的应用程序将在大多数Windows版本(XP,Vista,Win 7)上运行.

Phi*_*ipp 14

使用该功能SHGetFolderPath.此函数优先于查询环境变量,因为后者可以修改为指向错误的位置.该文档包含一个示例,我在此重复(略微调整):

#include <Shlobj.h>  // need to include definitions of constants

// .....

WCHAR path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPathW(NULL, CSIDL_PROFILE, NULL, 0, path))) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

  • 同时不推荐使用`SHGetFolderPath`,并且在Windows XP上不能使用后继`SHGetKnownFolderPath`. (4认同)

小智 5

我使用 %USERPROFILE% 来获取当前用户主目录的路径。