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
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 |