次の方法で共有


GetTempPath2A 関数 (fileapi.h)

呼び出し元プロセスの権限に基づいて、一時ファイル用に指定されたディレクトリのパスを取得します。

構文

DWORD GetTempPath2A(
  [in]  DWORD BufferLength,
  [out] LPSTR Buffer
);

パラメーター

[in] BufferLength

lpBufferで識別される文字列バッファーのサイズ (TCHAR)。

[out] Buffer

一時ファイル パスを指定する null で終わる文字列を受け取る文字列バッファーへのポインター。 返される文字列は、"C:\TEMP\" などの円記号で終わります。

戻り値

関数が成功した場合、戻り値は、終端の null 文字を含まない、lpBufferにコピーされた文字列の長さ (TCHAR) です。 戻り値が nBufferLengthより大きい場合、戻り値はパスを保持するために必要なバッファーの長さ (TCHAR) です。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

可能な最大戻り値は、+1 (261) MAX_PATHです。

備考

SYSTEM として実行されているプロセスからこの関数を呼び出すと、パス C:\Windows\SystemTemp が返されます。これは、SYSTEM 以外のプロセスからはアクセスできません。 SYSTEM 以外のプロセスの場合、GetTempPath2 は、GetTempPathと同じように動作します。

非システム プロセスの場合、GetTempPath2 関数は、次の順序で環境変数の存在をチェックし、最初に見つかったパスを使用します。

  1. TMP 環境変数で指定されたパス。
  2. TEMP 環境変数で指定されたパス。
  3. USERPROFILE 環境変数で指定されたパス。
  4. Windows ディレクトリ。

この関数では、パスが存在するかどうかは確認されず、現在のプロセスにパスに対する任意の種類のアクセス権があるかどうかをテストしないことに注意してください。 GetTempPath2 関数は、前に指定した環境変数の検索順序に基づいて完全修飾パスを指定する適切に書式設定された文字列を返します。 アプリケーションは、ファイル I/O 操作に使用する前に、パスの存在とパスへの適切なアクセス権を確認する必要があります。

シンボリック リンクの動作: パスがシンボリック リンクを指している場合、一時パス名はシンボリック リンクを保持します。

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

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

例については、「一時ファイルの作成と使用」を参照してください。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 11 ビルド 22000
サポートされる最小サーバー Windows Server ビルド 20348
ヘッダー fileapi.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

ファイル管理機能の

GetTempFileName を する

シンボリック リンク の