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 Nama File, Jalur, dan Namespace.

Dalam versi ANSI dari fungsi ini, namanya terbatas pada MAX_PATH karakter.

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

Tips Dimulai dengan Windows 10, versi 1607, untuk versi unicode fungsi ini (SetCurrentDirectoryW), Anda dapat memilih untuk menghapus batasan MAX_PATH. Lihat bagian "Batasan Panjang Jalur Maksimum" dari Penamaan File, Jalur, dan Namespace untuk detailnya.
 

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, 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 multithread dan kode pustaka bersama harus menghindari penggunaan jalur relatif sehingga tidak terpengaruh oleh perubahan pada direktori saat ini yang dilakukan oleh utas lain.

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

   
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

Fungsi Manajemen Direktori

GetCurrentDirectory

GetFullPathName