共用方式為


PathCombineW 函式 (shlwapi.h)

將代表正確形成路徑的兩個字串串連成一個路徑;也會串連任何相對路徑專案。

注意 誤用此函式可能會導致緩衝區溢位。 建議您在其位置使用更安全的 PathCchCombinePathCchCombineEx 函式。
 

語法

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:。 檔案路徑的格式應該正確,代表路徑的檔案名部分。 如果目錄路徑以反斜線結尾,將會維護反斜線。 請注意,雖然 lpszDirlpszFile 都是選擇性參數,但兩者都不能是 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 標頭會將 PathCombine 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

需求

   
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (4.71 版或更新版本)