Bagikan melalui


Fungsi GetTempFileNameA (fileapi.h)

Membuat nama untuk file sementara. Jika nama file unik dibuat, file kosong dibuat dan handel ke file tersebut dirilis; jika tidak, hanya nama file yang dihasilkan.

Sintaksis

UINT GetTempFileNameA(
  [in]  LPCSTR lpPathName,
  [in]  LPCSTR lpPrefixString,
  [in]  UINT   uUnique,
  [out] LPSTR  lpTempFileName
);

Parameter

[in] lpPathName

Jalur direktori untuk nama file. Aplikasi biasanya menentukan titik (.) untuk direktori saat ini atau hasil fungsi GetTempPath2 . String tidak boleh lebih panjang dari MAX_PATH-14 karakter atau GetTempFileName akan gagal. Jika parameter ini adalah NULL, fungsi gagal.

[in] lpPrefixString

String awalan yang dihentikan null. Fungsi ini menggunakan hingga tiga karakter pertama string ini sebagai awalan nama file. String ini harus terdiri dari karakter dalam set karakter yang ditentukan OEM.

[in] uUnique

Bilangan bulat yang tidak ditandatangani untuk digunakan dalam membuat nama file sementara. Untuk informasi selengkapnya, lihat Keterangan.

Jika uUnique adalah nol, fungsi mencoba membentuk nama file unik menggunakan waktu sistem saat ini. Jika file sudah ada, jumlahnya ditingkatkan satu dan fungsi menguji jika file ini sudah ada. Ini berlanjut hingga nama file unik ditemukan; fungsi membuat file dengan nama tersebut dan menutupnya. Perhatikan bahwa fungsi tidak mencoba memverifikasi keunikan nama file ketika uUnique bukan nol.

[out] lpTempFileName

Penunjuk ke buffer yang menerima nama file sementara. Buffer ini harus MAX_PATH karakter untuk mengakomodasi jalur ditambah karakter null yang mengakhiri.

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian menentukan nilai numerik unik yang digunakan dalam nama file sementara. Jika parameter uUnique bukan nol, nilai pengembalian menentukan angka yang sama.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Berikut ini adalah daftar kemungkinan nilai pengembalian:

Mengembalikan nilai Deskripsi
ERROR_BUFFER_OVERFLOW Panjang string yang ditunjukkan oleh parameter lpPathName lebih dari MAX_PATH–14 karakter.

Komentar

Fungsi GetTempFileName membuat nama file sementara dari formulir berikut:

<path>\<pre><uuuu>.TMP

Tabel berikut menguraikan sintaks nama file:

Komponen Arti
<path> Jalur yang ditentukan oleh parameter lpPathName
<pre> Tiga huruf pertama dari string lpPrefixString
<uuuu> Nilai heksadesimal uUnique

Jika uUnique adalah nol, GetTempFileName membuat file kosong dan menutupnya. Jika uUnique bukan nol, Anda harus membuat file sendiri. Hanya nama file yang dibuat, karena GetTempFileName tidak dapat menjamin bahwa nama file unik.

Hanya 16 bit yang lebih rendah dari parameter uUnique yang digunakan. Ini membatasi GetTempFileName hingga maksimum 65.535 nama file unik jika parameter lpPathName dan lpPrefixString tetap sama.

Karena algoritma yang digunakan untuk menghasilkan nama file, GetTempFileName dapat berkinerja buruk saat membuat sejumlah besar file dengan awalan yang sama. Dalam kasus seperti itu, disarankan agar Anda membuat nama file unik berdasarkan GUID. Anda juga dapat menambahkan ID proses saat ini ke string awalan untuk mengurangi kemungkinan tabrakan dalam operasi paralel.

File sementara yang namanya telah dibuat oleh fungsi ini tidak dihapus secara otomatis. Untuk menghapus panggilan file ini DeleteFile.

Untuk menghindari masalah yang diakibatkan saat mengonversi string ANSI, aplikasi harus memanggil fungsi CreateFile untuk membuat file sementara.

Mulai Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut:

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Yes
Failover Transparan (TFO) SMB 3.0 Yes
SMB 3.0 dengan Scale-out File Shares (SOFS) Yes
Sistem File Volume Bersama Kluster (CsvFS) Yes
Sistem File Tangguh (ReFS) Yes

Contoh

Misalnya, lihat Membuat dan Menggunakan File Sementara.

Nota

Header fileapi.h mendefinisikan GetTempFileName sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header fileapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CreateFile

DeleteFile

File Management Functions

GetTempPath2

Penamaan File, Jalur, dan Namespace