一時ファイルの名前を作成します。 一意のファイル名が生成されると、空のファイルが作成され、それに対するハンドルが解放されます。それ以外の場合は、ファイル名のみが生成されます。
構文
UINT GetTempFileNameA(
[in] LPCSTR lpPathName,
[in] LPCSTR lpPrefixString,
[in] UINT uUnique,
[out] LPSTR lpTempFileName
);
パラメーター
[in] lpPathName
ファイル名のディレクトリ パス。 通常、アプリケーションでは、現在のディレクトリの期間 (.) または GetTempPath2 関数の結果を指定します。 文字列を -14 文字 NULL場合、関数は失敗します。
[in] lpPrefixString
null で終わるプレフィックス文字列。 この関数は、ファイル名のプレフィックスとして、この文字列の最初の 3 文字まで使用します。 この文字列は、OEM で定義された文字セット内の文字で構成されている必要があります。
[in] uUnique
一時ファイル名の作成に使用する符号なし整数。 詳細については、「解説」を参照してください。
uUnique
[out] lpTempFileName
一時ファイル名を受け取るバッファーへのポインター。 パスと終端の null 文字を格納するには、このバッファーを MAX_PATH 文字にする必要があります。
戻り値
関数が成功した場合、戻り値は一時ファイル名で使用される一意の数値を指定します。 uUnique パラメーターが 0 以外の場合、戻り値はその同じ数値を指定します。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
可能な戻り値の一覧を次に示します。
| 戻り値 | 形容 |
|---|---|
| ERROR_BUFFER_OVERFLOW | lpPathName パラメーターが指す文字列の長さは、MAX_PATH-14 文字を超えています。 |
備考
GetTempFileName 関数は、次の形式の一時ファイル名を作成します。
<path>\<pre><uuuu>.TMP
次の表では、ファイル名の構文について説明します。
| コンポーネント | 意味 |
|---|---|
<path> |
lpPathName パラメーターで指定されたパス |
<pre> |
lpPrefixString 文字列の最初の 3 文字 |
<uuuu> |
uUnique |
uUnique が 0 の場合、GetTempFileName 空のファイルを作成して閉じます。 uUnique
uUnique パラメーターの下位 16 ビットのみが使用されます。 これにより、
ファイル名の生成に使用されるアルゴリズムにより、GetTempFileName は、同じプレフィックスを持つ多数のファイルを作成するときにパフォーマンスが低下する可能性があります。 このような場合は、GUIDに基づいて一意
この関数によって作成された名前の一時ファイルは自動的には削除されません。 これらのファイルを削除するには、DeleteFile
ANSI 文字列を変換するときに発生する問題を回避するには、アプリケーションで CreateFile 関数を呼び出して一時ファイルを作成する必要があります。
Windows 8 および Windows Server 2012 以降では、この関数は次のテクノロジでサポートされています。
| テクノロジー | サポート |
|---|---|
| サーバー メッセージ ブロック (SMB) 3.0 プロトコル | イエス |
| SMB 3.0 透過的フェールオーバー (TFO) | イエス |
| SMB 3.0 とスケールアウト ファイル共有 (SOFS) | イエス |
| クラスター共有ボリューム ファイル システム (CsvFS) | イエス |
| 回復性のあるファイル システム (ReFS) | イエス |
例
例については、「一時ファイルの作成と使用」を参照してください。
手記
fileapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetTempFileName を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
| サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
| ターゲット プラットフォーム の |
ウィンドウズ |
| ヘッダー | fileapi.h (Windows.h を含む) |
| ライブラリ | Kernel32.lib |
| DLL | Kernel32.dll |
関連項目
CreateFile の
DeleteFile の
GetTempPath2 を
ファイル、パス、および名前空間の名前付け を