Fungsi GetCurrentDirectory (winbase.h)

Mengambil direktori saat ini untuk proses saat ini.

Sintaks

DWORD GetCurrentDirectory(
  [in]  DWORD  nBufferLength,
  [out] LPTSTR lpBuffer
);

Parameter

[in] nBufferLength

Panjang buffer untuk string direktori saat ini, dalam TCHAR. Panjang buffer harus mencakup ruang untuk karakter null yang mengakhiri.

[out] lpBuffer

Penunjuk ke buffer yang menerima string direktori saat ini. String yang dihentikan null ini menentukan jalur absolut ke direktori saat ini.

Untuk menentukan ukuran buffer yang diperlukan, atur parameter ini ke NULL dan parameter nBufferLength ke 0.

Nilai kembali

Jika fungsi berhasil, nilai pengembalian menentukan jumlah karakter yang ditulis ke buffer, tidak termasuk karakter null yang mengakhiri.

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

Jika buffer yang ditunjukkan oleh lpBuffer tidak cukup besar, nilai pengembalian menentukan ukuran buffer yang diperlukan, dalam karakter, termasuk karakter null-terminating.

Keterangan

Setiap proses memiliki satu direktori saat ini yang terdiri dari dua bagian:

  • Penentu disk yang merupakan huruf kandar diikuti dengan titik dua, atau nama server diikuti dengan nama berbagi (\\servername\sharename)
  • Direktori pada pendesain disk
Untuk mengatur direktori saat ini, gunakan fungsi SetCurrentDirectory .

Aplikasi multithreaded dan kode pustaka bersama tidak boleh menggunakan
Fungsi GetCurrentDirectory dan harus menghindari penggunaan nama jalur relatif. Status direktori saat ini yang ditulis oleh fungsi SetCurrentDirectory disimpan sebagai variabel global di setiap proses, oleh karena itu aplikasi multithreaded tidak dapat dengan andal menggunakan nilai ini tanpa kemungkinan kerusakan data dari utas lain yang mungkin juga membaca atau mengatur nilai ini. Batasan ini juga berlaku untuk fungsi SetCurrentDirectory dan GetFullPathName . Pengecualiannya adalah ketika aplikasi dijamin berjalan dalam satu utas, misalnya mengurai nama file dari string argumen baris perintah di utas utama sebelum membuat utas tambahan. Menggunakan nama jalur relatif dalam aplikasi multithreaded atau kode pustaka bersama dapat menghasilkan hasil yang tidak dapat diprediksi dan tidak didukung.

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

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Ya
SMB 3.0 Transparent Failover (TFO) 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 Mengubah Direktori Saat Ini.

Persyaratan

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

Lihat juga

CreateDirectory

Fungsi Manajemen Direktori

GetSystemDirectory

GetWindowsDirectory

RemoveDirectory

SetCurrentDirectory