Fungsi SetCurrentDirectory (winbase.h)

Mengubah direktori saat ini untuk proses saat ini.

Sintaks

BOOL SetCurrentDirectory(
  [in] LPCTSTR lpPathName
);

Parameter

[in] lpPathName

Jalur ke direktori baru saat ini. Parameter ini dapat menentukan jalur relatif atau jalur lengkap. Dalam kedua kasus, jalur lengkap direktori yang ditentukan dihitung dan disimpan sebagai direktori saat ini.

Untuk informasi selengkapnya, lihat Menamai file, jalur, dan namespace layanan.

Secara default, nama terbatas pada MAX_PATH karakter.

Tip

Dimulai dengan Windows 10, Versi 1607, Anda dapat memilih untuk menghapus batasan MAX_PATH. Untuk detailnya, lihat bagian Batasan panjang jalur maksimumdari Penamaan file, jalur, dan namespace.

Penting

Mengatur direktori saat ini lebih lama dari MAX_PATH menyebabkan CreateProcessW gagal.

Karakter akhir sebelum karakter null harus berupa garis miring terbalik ('\'). Jika Anda tidak menentukan garis miring terbalik, maka garis miring tersebut akan ditambahkan untuk Anda. Oleh karena itu, tentukan >karakter MAX_PATH-2 untuk jalur kecuali Anda menyertakan garis miring terbelakang; dalam hal ini, tentukan karakter MAX_PATH-1 untuk jalur tersebut.

Mengembalikan nilai

Jika fungsi berhasil, maka nilai yang dikembalikan bukan nol.

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

Keterangan

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

  • Pendesain disk yang merupakan huruf kandar diikuti dengan titik dua, atau nama server dan nama berbagi (\\servername\sharename)
  • Direktori pada pendesain disk

Direktori saat ini dibagikan oleh semua utas proses: Jika satu utas mengubah direktori saat ini, itu mempengaruhi semua utas dalam proses.

Aplikasi multithreaded dan kode pustaka bersama harus menghindari panggilan fungsi SetCurrentDirectory karena risiko memengaruhi perhitungan jalur relatif yang dilakukan oleh utas lain. Sebaliknya

aplikasi multithreaded dan kode pustaka bersama harus menghindari penggunaan jalur relatif sehingga tidak terpengaruh oleh perubahan pada direktori saat ini yang dilakukan oleh utas lain.

Catatan

Direktori saat ini untuk proses dikunci saat proses sedang dijalankan. Hal ini mencegah direktori dihapus, dipindahkan, atau diganti namanya.

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 Berbagi File Peluasan Skala (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