次の方法で共有


GetLongPathNameA 関数 (fileapi.h)

指定したパスを長い形式に変換します。

この操作をトランザクション操作として実行するには、GetLongPathNameTransacted 関数を使用します。

ファイル名とパス名の詳細については、「名前付けファイル、パス、および名前空間を参照してください。

構文

DWORD GetLongPathNameA(
  [in]  LPCSTR lpszShortPath,
  [out] LPSTR  lpszLongPath,
  [in]  DWORD  cchBuffer
);

パラメーター

[in] lpszShortPath

変換するパス。

[out] lpszLongPath

長いパスを受け取るバッファーへのポインター。

lpszShortPath パラメーターに使用したのと同じバッファーを使用できます。

[in] cchBuffer

lpszLongPath バッファーのサイズは、TCHARで指します。

戻り値

関数が成功した場合、戻り値は、終端の null 文字を含まない lpszLongPathコピーされた文字列の長さ (TCHAR) です。

lpBuffer バッファーが小さすぎてパスを格納できない場合、戻り値は、パスと終端の null 文字を保持するために必要なバッファーのサイズ (TCHAR) です。

ファイルが存在しない場合など、他の理由で関数が失敗した場合、戻り値は 0 になります。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

多くのファイル システムでは、短いファイル名にチルダ (~) 文字が含まれています。 ただし、すべてのファイル システムがこの規則に従うわけではありません。 したがって、パスにチルダ (~) 文字が含まれていない場合 GetLongPathName の呼び出しをスキップできることを想定しないでください。

ファイルまたはディレクトリが存在するが、長いパスが見つからない場合、getLongPathName は成功し、lpszShortPath パラメーターによって参照される文字列が、lpszLongPath パラメーターによって参照されるバッファーにコピーされます。

戻り値が cchBufferで指定 値より大きい場合は、パスを保持するのに十分な大きさのバッファーを使用して関数を再度呼び出すことができます。 この場合の例については、「GetFullPathNameのコード例」セクションを参照してください。

注意 この場合の戻り値は終端の null 文字を含む長さですが、成功した場合の戻り値にはカウント内の終端の null 文字は含まれません。
 
ファイルまたはディレクトリにアクセスすることはできますが、そのファイルまたはディレクトリの親ディレクトリの一部にはアクセスできません。 その結果、パス コンポーネントの親ディレクトリに対してクエリを実行して、そのコンポーネントの長い名前を判断できない場合、GetLongPathName が失敗する可能性があります。 このチェックは、ファイル拡張子が 3 文字より長いディレクトリ コンポーネント、または 12 文字を超える合計長のディレクトリ コンポーネントではスキップできます。 詳細については、「名前付けファイル、パス、および名前空間短い名前と長い名前の」セクションを参照してください。

Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。

テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
 

GetLongPathNameを使用する例については、「GetFullPathNameのコード例」セクション 参照してください。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー fileapi.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

ファイル管理機能の

GetFullPathName の

GetLongPathNameTransacted の

GetShortPathName を する

ファイル、パス、および名前空間の名前付け を する