共用方式為


PathCchCombine 函式 (pathcch.h)

將兩個路徑片段合併成單一路徑。 此函式也會正式化任何相對路徑專案,移除 “.” 和 “..” 元素,以簡化最終路徑。

此函式與 PathCchCombineEx 不同,因為您限制為長度為MAX_PATH的最終路徑。

此函式與 PathAllocCombine 不同,因為呼叫端必須宣告儲存在堆疊上的傳回字串大小。

此函式與 PathCombine 不同,因為它接受具有 “\”、“\?” 和 “\?\UNC” 前置詞的路徑。

注意 此函式 PathCchCombineExPathAllocCombine 應該用來取代 PathCombine ,以避免緩衝區溢出的可能性。

語法

WINPATHCCHAPI HRESULT PathCchCombine(
  [out]          PWSTR  pszPathOut,
  [in]           size_t cchPathOut,
  [in, optional] PCWSTR pszPathIn,
  [in, optional] PCWSTR pszMore
);

參數

[out] pszPathOut

緩衝區的指標,當此函式成功傳回時,會收到合併的路徑字串。 此參數可以指向 與 pszPathInpszMore 相同的緩衝區。

[in] cchPathOut

pszPathOut 所指向的緩衝區大小,以字元為單位。

[in, optional] pszPathIn

第一個路徑字串的指標。 此值可以是 NULL

[in, optional] pszMore

第二個路徑字串的指標。 如果此路徑以單一反斜杠開頭,則只會結合 pszPathIn 指向之路徑的根目錄。 如果此路徑為完整路徑,則會直接複製到輸出緩衝區,而不會與其他路徑結合。 此值可以是 NULL

傳回值

此函式會傳回 HRESULT 程式代碼,包括下列專案。

傳回碼 描述
S_OK
此函數已成功。 請注意,這也包含空白延伸模組的大小寫,例如句號,其後沒有字元。 在此情況下,原始字串會傳回未變更。
E_INVALIDARG
此值可能是由數件事所造成,例如 pszPathOut 參數設定為 NULL,或 將 cchPathOut 值設定為 0 或大於 PATHCCH_MAX_CCH的值。
E_OUTOFMEMORY
函式無法配置足夠的記憶體來執行作業。
PATHCCH_E_FILENAME_TOO_LONG
原始路徑的大小超過 PATHCCH_MAX_CCH

備註

如果 pszPathInpszMore 都是 NULL 或指向空字串,則會將單一反斜杠複製到 pszPathOut 指向的緩衝區。

規格需求

需求
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 pathcch.h
程式庫 Pathcch.lib

另請參閱

PathCchCanonicalize

PathCchCanonicalizeEx

PathCchCombineEx