我正在尝试获取Windows用户的配置文件路径的父文件夹。但我找不到使用SHGetSpecialFolderPath
获取此功能的“参数”,到目前为止我使用的是CSIDL_PROFILE
。
预期路径:
Win7 - “C:\ Users”
Windows XP - “C:\ Documents and Settings”
答案 0 :(得分:1)
除了显示用户路径以外的大多数用途,它应该可以将"\\.."
(或"..\\"
如果以反斜杠结尾)附加到相关路径。
答案 1 :(得分:0)
使用shell libary 6.0版,你有这个值被删除了(参见{ {3}}),您必须使用自己的解决方法。CSIDL_PROFILES
(不要与CSIDL_PROFILE
混淆),它可以提供你想要的东西。
在任何以前的版本中,您必须实现自己的解决方法,例如在Windows上查找可能的路径分隔符,即\
和/
,并在最后一个。一个简单的版本可以使用strrchr
(或wcsrchr
)来定位反斜杠,然后假设字符串是可写的,在该位置终止字符串。
示例:
char* path;
// Retrieve the path at this point, e.g. "C:\\Users\\username"
char* lastSlash = strrchr(path, '\\');
if(!lastSlash)
lastSlash = strrchr(path, '/');
if(lastSlash)
*lastSlash = 0;
当然,在你对这个答案的评论中指出了GetProfilesDirectory
(我没说过)。