GetTempPathA 関数 (fileapi.h)
一時ファイル用に指定されたディレクトリのパスを取得します。
構文
DWORD GetTempPathA(
[in] DWORD nBufferLength,
[out] LPSTR lpBuffer
);
パラメーター
[in] nBufferLength
TCHAR の lpBuffer によって識別される文字列バッファーのサイズ。
[out] lpBuffer
一時ファイル パスを指定する null で終わる文字列を受け取る文字列バッファーへのポインター。 返される文字列は、"C:\TEMP\" などの円記号で終わります。
戻り値
関数が成功した場合、戻り値は lpBuffer にコピーされた文字列の長さ (TCHAR) であり、終端の null 文字は含まれません。 戻り値が nBufferLength より大きい場合、戻り値は、パスを保持するために必要なバッファーの長さ ( TCHAR) です。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
可能な最大戻り値は 、MAX_PATH +1 (261) です。
解説
Note
アプリでは 、GetTempPath ではなく GetTempPath2 を呼び出す必要があります。
GetTempPath 関数は、次の順序で環境変数の存在を確認し、見つかった最初のパスを使用します。
- TMP 環境変数で指定されたパス。
- TEMP 環境変数で指定されたパス。
- USERPROFILE 環境変数で指定されたパス。
- Windows ディレクトリ。
シンボリック リンクの動作 — パスがシンボリック リンクを指している場合、一時パス名はシンボリック リンクを保持します。
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 |