PathCombineW 函式 (shlwapi.h)
串連兩個字串,代表正確形成的路徑成一個路徑;也會串連任何相對路徑專案。
注意 誤用此函式可能會導致緩衝區滿溢。 我們建議使用更安全 的 pathCchCombine 或 PathCchCombineEx 函式。
語法
LPWSTR PathCombineW(
[out] LPWSTR pszDest,
[in, optional] LPCWSTR pszDir,
[in] LPCWSTR pszFile
);
參數
[out] pszDest
類型:LPTSTR
緩衝區的指標,當此函式成功傳回時,會接收合併的路徑字串。 您必須將此緩衝區的大小設定為 MAX_PATH,以確保大小足以保存傳回的字串。
[in, optional] pszDir
類型:LPCTSTR
包含第一個路徑之最大長度之 null 終止字串的指標MAX_PATH。 這個值可以 NULL。
[in] pszFile
類型:LPCTSTR
包含第二個路徑之最大長度的 null 終止字串指標MAX_PATH。 這個值可以 NULL。
傳回值
類型:LPTSTR
緩衝區的指標,當此函式成功傳回時,會接收串連的路徑字串。 這是 pszPathOut所指向的相同字串。 如果函式未成功傳回,這個值會 NULL。
言論
目錄路徑的格式應該是 A:、B:、...、Z:。 檔案路徑的格式應該正確,表示路徑的檔名部分。 如果目錄路徑以反斜杠結尾,則會維護反斜杠。 請注意,雖然 lpszDir 和 lpszFile 都是選擇性參數,但它們不能同時 NULL。
例子
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"
int main( void )
{
// Buffer to hold combined path.
char buffer_1[MAX_PATH] = "";
char *lpStr1;
lpStr1 = buffer_1;
// String for balance of path name.
char buffer_2[ ] = "One\\Two\\Three";
char *lpStr2;
lpStr2 = buffer_2;
// String for directory name.
char buffer_3[ ] = "C:";
char *lpStr3;
lpStr3 = buffer_3;
cout << "The file path to be combined is "
<< lpStr2 << endl;
cout << "The directory name path is "
<< lpStr3 << endl;
cout << "The combined path is "
<< PathCombine(lpStr1,lpStr3,lpStr2) << endl;
}
------------
INPUT:
------------
Path for directory part: "C:"
Path for file part: "One\Two\Three"
------------
OUTPUT:
------------
The file path to be combined is One\Two\Three
The directory name path is C:
The combined path is C:\One\Two\Three
注意
shlwapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 PathCombine 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | shlwapi.h |
連結庫 | Shlwapi.lib |
DLL | Shlwapi.dll (4.71 版或更新版本) |