GetTempPathA 関数 (fileapi.h)

一時ファイル用に指定されたディレクトリのパスを取得します。

構文

DWORD GetTempPathA(
  [in]  DWORD nBufferLength,
  [out] LPSTR lpBuffer
);

パラメーター

[in] nBufferLength

TCHARlpBuffer によって識別される文字列バッファーのサイズ。

[out] lpBuffer

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

戻り値

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

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

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

解説

Note

アプリでは 、GetTempPath ではなく GetTempPath2 を呼び出す必要があります。

GetTempPath 関数は、次の順序で環境変数の存在を確認し、見つかった最初のパスを使用します。

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

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

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

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい
 

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

Note

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

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー fileapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

File Management 関数

GetTempFileName

シンボリック リンク