Bagikan melalui


Fungsi GetTempPath2W (fileapi.h)

Mengambil jalur direktori yang ditunjuk untuk file sementara, berdasarkan hak istimewa proses panggilan.

Sintaksis

DWORD GetTempPath2W(
  [in]  DWORD  BufferLength,
  [out] LPWSTR Buffer
);

Parameter

[in] BufferLength

Ukuran buffer string yang diidentifikasi oleh lpBuffer, dalam TCHAR.

[out] Buffer

Penunjuk ke buffer string yang menerima string yang dihentikan null yang menentukan jalur file sementara. String yang dikembalikan diakhir dengan garis miring terbelakang, misalnya, "C:\TEMP\".

Mengembalikan nilai

Jika fungsi berhasil, nilai pengembalian adalah panjangnya, dalam TCHAR, dari string yang disalin ke lpBuffer, tidak termasuk karakter null yang mengakhiri. Jika nilai yang dikembalikan lebih besar dari nBufferLength, nilai pengembalian adalah panjangnya, dalam TCHAR, dari buffer yang diperlukan untuk menahan jalur.

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

Nilai pengembalian maksimum yang mungkin adalah MAX_PATH+1 (261).

Komentar

Ketika memanggil fungsi ini dari proses yang berjalan sebagai SYSTEM, itu akan mengembalikan jalur C:\Windows\SystemTemp, yang tidak dapat diakses oleh proses non-SISTEM. Untuk proses non-SISTEM, GetTempPath2 akan berulah sama dengan GetTempPath.

Untuk proses sistem, fungsi GetTempPath2 memeriksa keberadaan variabel lingkungan SystemTemp. Jika variabel lingkungan ini diatur, variabel lingkungan akan menggunakan nilai variabel lingkungan sebagai jalur alih-alih jalur yang disediakan sistem default pada drive C:.

Nota

Alasan GetTempPath2 ada dan default untuk mengembalikan C:\Windows\SystemTemp adalah karena direktori tersebut adalah ACL'd dengan izin yang benar untuk mencegah masalah pengalihan jalur umum. Untuk alasan keamanan, hanya atur variabel lingkungan SystemTemp ke direktori dengan izin yang hanya memungkinkan proses/administrator SISTEM mengaksesnya.

Untuk proses non-sistem, fungsi GetTempPath2 memeriksa keberadaan variabel lingkungan dalam urutan berikut dan menggunakan jalur pertama yang ditemukan:

  1. Jalur yang ditentukan oleh variabel lingkungan TMP.
  2. Jalur yang ditentukan oleh variabel lingkungan TEMP.
  3. Jalur yang ditentukan oleh variabel lingkungan USERPROFILE.
  4. Direktori Windows.

Perhatikan bahwa fungsi tidak memverifikasi bahwa jalur ada, juga tidak menguji untuk melihat apakah proses saat ini memiliki jenis hak akses ke jalur. Fungsi GetTempPath2 mengembalikan string yang diformat dengan benar yang menentukan jalur yang sepenuhnya memenuhi syarat berdasarkan urutan pencarian variabel lingkungan seperti yang ditentukan sebelumnya. Aplikasi harus memverifikasi keberadaan jalur dan hak akses yang memadai ke jalur sebelum penggunaan apa pun untuk operasi I/O file.

Perilaku tautan Simbolis: Jika jalur menunjuk ke tautan simbolis, nama jalur sementara mempertahankan tautan simbolis apa pun.

Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

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

Contoh

Misalnya, lihat Membuat dan Menggunakan File Sementara.

Nota

Header fileapi.h mendefinisikan GetTempPath2 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 11 Build 22000
server minimum yang didukung Windows Server 2016 Build 14393
Header fileapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

File Management Functions

GetTempFileName

Tautan Simbolis