共用方式為


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。 此類型最常用的資料夾是 My Documents

[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 標頭會根據 UNICODE 預處理器常數的定義,將 SHGetFolderPathAndSubDir 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 shlobj_core.h (包括 Shlobj.h, Shlobj_core.h)
連結庫 Shell32.lib
DLL Shell32.dll 版 (5.60 版或更新版本)

另請參閱

SHGetFolderPath