PathRelativePathToW 関数 (shlwapi.h)
ファイルまたはフォルダー間の相対パスを作成します。
構文
BOOL PathRelativePathToW(
[out] LPWSTR pszPath,
[in] LPCWSTR pszFrom,
[in] DWORD dwAttrFrom,
[in] LPCWSTR pszTo,
[in] DWORD dwAttrTo
);
パラメーター
[out] pszPath
型: LPTSTR
相対パスを受け取る文字列へのポインター。 このバッファーのサイズは、少なくともMAX_PATH文字にする必要があります。
[in] pszFrom
型: LPCTSTR
相対パスの開始を定義するパスを含む最大長MAX_PATHの null で終わる文字列へのポインター。
[in] dwAttrFrom
型: DWORD
pszFromのファイル属性。 この値にFILE_ATTRIBUTE_DIRECTORYが含まれている場合、pszFrom はディレクトリであると見なされます。それ以外の場合、pszFrom はファイルであると見なされます。
[in] pszTo
型: LPCTSTR
相対パスのエンドポイントを定義するパスを含む最大長MAX_PATHの null で終わる文字列へのポインター。
[in] dwAttrTo
型: DWORD
pszToのファイル属性。 この値にFILE_ATTRIBUTE_DIRECTORYが含まれている場合、pszTo はディレクトリであると見なされます。それ以外の場合、pszTo はファイルであると見なされます。
戻り値
型: BOOL
成功した場合
備考
この関数は、パスのペアを受け取り、一方から他方への相対パスを生成します。 パスは完全修飾である必要はありませんが、共通のプレフィックスが必要です。または、関数が失敗し、FALSE
たとえば、pszFrom
例
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"
void main(void)
{
char szOut[MAX_PATH] = "";
char szFrom[ ] = "c:\\a\\b\\path";
char szTo[ ] = "c:\\a\\x\\y\\file";
cout << "The relative path is relative from: ";
cout << szFrom;
cout << "\n";
cout << "The relative path is relative to: ";
cout << szTo;
cout << "\n";
PathRelativePathTo(szOut,
szFrom,
FILE_ATTRIBUTE_DIRECTORY,
szTo,
FILE_ATTRIBUTE_NORMAL);
cout << "The relative path is: ";
cout << szOut;
cout << "\n";
}
OUTPUT:
==================
The relative path is relative from: c:\a\b\path
The relative path is relative to: c:\a\x\y\file
The relative path is: ..\..\x\y\file
手記
shlwapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして PathRelativePathTo を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | shlwapi.h |
ライブラリ | Shlwapi.lib |
DLL | Shlwapi.dll (バージョン 4.71 以降) |