PathCleanupSpec 関数 (shlobj_core.h)
[PathCleanupSpec は、[要件] セクションで指定されたオペレーティング システムで使用できます。 これは、以降のバージョンで変更または使用できない可能性があります。
ファイル名またはディレクトリ名から無効な文字を削除します。 長いファイル名をサポートしていないドライブに 8.3 ファイル名形式を適用します。
構文
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
パラメーター
[in, optional] pszDir
種類: PCWSTR
pszSpec という名前のファイルまたはディレクトリを含むディレクトリの完全修飾パスを含む null で終わるバッファーへのポインター。 パスは、終端の null 文字を含め、長さがMAX_PATH文字を超えてはなりません。 このパスは変更されません。
この値には NULL を指定できます。
[in, out] pszSpec
種類: PWSTR
消去するファイル名またはディレクトリ名を含む null で終わるバッファーへのポインター。 ファイルの場合は、ファイルの拡張子を含めます。 '' は無効な文字と見なされ、削除されるため、このバッファーには複数のディレクトリの深いパスを含めることはできません。
終了時に、バッファーには、クリーンアップされた名前を含む null で終わる文字列が含まれます。
バッファー オーバーランの可能性を回避するには、このバッファーの長さを少なくともMAX_PATH文字にする必要があります。
戻り値
型: int
次の値のうち 1 つ以上を返します。
リターン コード | 説明 |
---|---|
|
1 つ以上の無効な文字が置き換えられました。 |
|
1 つ以上の無効な文字を削除しました。 |
|
返されたパスは切り捨てられます。 |
|
pszDir で指定された入力パスが長すぎて pszSpec から有効なファイル名を作成できないため、関数は失敗しました。 このフラグが返されると、常に PCS_FATAL フラグが伴います。 |
|
クリーンアップされたパスが有効なファイル名ではありません。 このフラグは、常にPCS_PATHTOOLONGと組み合わせて返されます。 |
注釈
以下は、すべての名前で無効な文字と見なされます。
\ / : * ? " < > |
制御文字も無効と見なされます。 長いファイル名がサポートされていない場合は、セミコロン (;)とコンマ (,) 文字も無効です。
pszDir でという名前のドライブがチェックされ、そのファイル システムで長いファイル名がサポートされているかどうかを確認します。 そうでない場合、 pszSpec の名前は 8.3 形式に切り捨てられ、PCS_TRUNCATED値が返されます。 pszDir が NULL の場合、Windows がインストールされているドライブを使用して、長いファイル名のサポートが決定されます。
完全なパス ( pszDir のパス内の文字数と pszSpec のクリーンされた名前の文字数) が MAX_PATH – 1 (終端の null 文字を考慮) を超える場合、関数はPCS_PATHTOOLONGを返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h (Shlobj.h を含む) |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 5.0 以降) |