PathCombineW 関数 (shlwapi.h)

正しく形成されたパスを表す 2 つの文字列を 1 つのパスに連結します。では、相対パス要素も連結されます。

メモ この関数を誤用すると、バッファー オーバーランが発生する可能性があります。 その代わりに、より安全な PathCchCombine 関数または PathCchCombineEx 関数を使用することをお勧めします。
 

構文

LPWSTR PathCombineW(
  [out]          LPWSTR  pszDest,
  [in, optional] LPCWSTR pszDir,
  [in]           LPCWSTR pszFile
);

パラメーター

[out] pszDest

種類: LPTSTR

この関数が正常に返されると、結合されたパス文字列を受け取るバッファーへのポインター。 返される文字列を保持するのに十分な大きさになるように、このバッファーのサイズを MAX_PATH に設定する必要があります。

[in, optional] pszDir

種類: LPCTSTR

最初のパスを含む最大長MAX_PATHの null で終わる文字列へのポインター。 この値には NULL を指定できます。

[in] pszFile

種類: LPCTSTR

2 番目のパスを含む最大長MAX_PATHの null で終わる文字列へのポインター。 この値には 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

Note

shlwapi.h ヘッダーは PathCombine をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shlwapi.h
Library Shlwapi.lib
[DLL] Shlwapi.dll (バージョン 4.71 以降)