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

我如何获得当前用户主目录的path?

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

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

使用函数SHGetFolderPath 这个函数优于查询环境变量,因为后者可以修改为指向错误的位置。 该文档包含一个例子,我在这里重复(稍作调整):

 #include <Shlobj.h> // need to include definitions of constants // ..... WCHAR path[MAX_PATH]; if (SUCCEEDED(SHGetFolderPathW(NULL, CSIDL_PROFILE, NULL, 0, path))) { ... } 

只要使用环境变量,在这种情况下,你想要%HOMEPATH%并将其与%SystemDrive%

http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows

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