SHGetFolderPathAndSubDirW 函数 (shlobj_core.h)

获取文件夹的路径,并追加用户提供的子文件夹路径。

语法

HRESULT SHGetFolderPathAndSubDirW(
  [in]  HWND    hwnd,
  [in]  int     csidl,
  [in]  HANDLE  hToken,
  [in]  DWORD   dwFlags,
  [in]  LPCWSTR pszSubDir,
  [out] LPWSTR  pszPath
);

参数

[in] hwnd

类型:HWND

保留。

[in] csidl

类型:int

CSIDL 值,该值标识要检索其路径的文件夹。 只有真实文件夹有效。 如果指定了虚拟文件夹,此函数将失败。 通过将文件夹的 CSIDL 与CSIDL_FLAG_CREATE组合在一起,可以使用 SHGetFolderPathAndSubDir 强制创建文件夹。

[in] hToken

类型:HANDLE

表示特定用户的 访问令牌。 对于早于 Windows 2000 的系统,请将此值设置为 NULL。 对于更高版本系统,通常 hToken,但并非总是设置为 NULL。 对于可以有多个用户但被视为属于单个用户的文件夹,可能需要为 hToken 赋值。 此类型的最常用的文件夹是 “我的文档”

[in] dwFlags

类型:DWORD

指定要返回的路径是文件夹的实际路径还是默认路径。 如果与 CSIDL 关联的文件夹 值可能被用户移动或重命名,则使用此值。

SHGFP_TYPE_CURRENT

返回文件夹的当前路径。

SHGFP_TYPE_DEFAULT

返回文件夹的默认路径。

[in] pszSubDir

类型:LPCTSTR

指向要追加到文件夹路径的子路径的指针。 这是长度MAX_PATH的 null终止字符串。 如果未创建新目录,则必须是现有子目录,否则函数将返回错误。 如果未追加任何子路径,则可以 NULL 此值。

[out] pszPath

类型:LPTSTR

当此函数返回时,此值指向目录路径和追加的子路径。 这是长度MAX_PATH的 null终止字符串。 当函数返回错误代码时,此字符串为空。

返回值

类型:HRESULT

如果此函数成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

言论

注意

shlobj_core.h 标头将 SHGetFolderPathAndSubDir 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 shlobj_core.h(包括 Shlobj.h、Shlobj_core.h)
Shell32.lib
DLL Shell32.dll(版本 5.60 或更高版本)

另请参阅

SHGetFolderPath