共用方式為


PathCchAppendEx 函式 (pathcch.h)

將一個路徑附加至另一個路徑的結尾。

此函式與 PathCchAppend 不同,因為它允許建構較長的最終路徑。

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

注意 此函式或 PathCchAppend應該用來取代 PathAppend ,以防止緩衝區溢出的可能性。

語法

WINPATHCCHAPI HRESULT PathCchAppendEx(
  [in, out]      PWSTR  pszPath,
  [in]           size_t cchPath,
  [in, optional] PCWSTR pszMore,
  [in]           ULONG  dwFlags
);

參數

[in, out] pszPath

在專案上,緩衝區的指標包含原始路徑。 當此函式成功傳回時,緩衝區會包含原始路徑加上附加的路徑。

[in] cchPath

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

[in, optional] pszMore

要附加至 pszPath 所指向路徑結尾的路徑指標。 以序列 \?\ 開頭的 UNC 路徑會接受並辨識為完整路徑。 這些路徑會取代 pszPath 所指向的字串,而不是附加至該字串。

[in] dwFlags

下列一或多個旗標:

意義
PATHCCH_NONE
0x0000000
不允許建構 \\?\ 路徑 (亦即,長路徑) 超過 MAX_PATH
PATHCCH_ALLOW_LONG_PATHS
0x00000001
允許建置 \\?\ 路徑超過 MAX_PATH
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
強制 API 將呼叫端視為已啟用長路徑,與進程已啟用長名稱的狀態無關。 只有在指定 PATHCCH_ALLOW_LONG_PATHS 時,才能使用此選項,而且不能與 PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS搭配使用。

注意此值可從 Windows 10 1703 版開始取得。

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
強制 API 將呼叫端視為已停用的長路徑,與進程已啟用長名稱的狀態無關。 只有在指定 PATHCCH_ALLOW_LONG_PATHS 時,才能使用此選項,而且不能與 PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS搭配使用。

注意此值可從 Windows 10 1703 版開始取得。

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
停用路徑區段的正規化,包括移除尾端點和空格。 這可讓您存取 win32 路徑正規化將會封鎖的路徑。

注意此值可從 Windows 10 1703 版開始取得。

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
將輸入路徑轉換成延伸長度 DOS 裝置路徑表單, (如果尚未在該窗體中,則會使用 \\?\ 前置詞) 。 這可讓存取因 Win32 正規化規則而無法尋址的路徑, (可以移除尾端點和空格) 和路徑長度限制。 此選項表示 PATHCCH_DO_NOT_NORMALIZE_SEGMENTS的相同行為。

注意此值可從 Windows 10 1703 版開始取得。

傳回值

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 程式代碼,包括下列專案。

傳回碼 Description
E_INVALIDARG
pszPathpszMoreNULLcchPath 為 0,或 cchPath 大於 PATHCCH_MAX_CCH
PATHCCH_E_FILENAME_TOO_LONG
產生的字串會超過 PATHCCH_MAX_CCH
E_OUTOFMEMORY
函式無法配置必要大小的緩衝區。

備註

如果兩個字串不存在,此函式會在兩個字元串之間插入反斜杠。

規格需求

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

另請參閱

PathCchAppend