Bagikan melalui


Fungsi CreateDirectory (winbase.h)

Membuat direktori baru. Jika sistem file yang mendasar mendukung keamanan pada file dan direktori, fungsi menerapkan deskriptor keamanan tertentu ke direktori baru.

Untuk menentukan direktori templat, gunakan fungsi CreateDirectoryEx .

Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi CreateDirectoryTransacted .

Sintaks

BOOL CreateDirectory(
  [in]           LPCTSTR               lpPathName,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Parameter

[in] lpPathName

Jalur direktori yang akan dibuat.

Untuk versi ANSI dari fungsi ini, ada batas ukuran string default untuk jalur 248 karakter (MAX_PATH - ruang yang cukup untuk nama file 8.3). Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, panggil versi Unicode fungsi dan prepend "\?" ke jalur. Untuk informasi selengkapnya, lihat Penamaan File

Tips Dimulai dengan Windows 10, versi 1607, untuk versi unicode fungsi ini (CreateDirectoryW), Anda dapat ikut serta untuk menghapus batasan 248 karakter tanpa menambahkan sebelumnya "\\?\". Batas 255 karakter per segmen jalur masih berlaku. Lihat bagian "Batasan Panjang Jalur Maksimum" di Penamaan File, Jalur, dan Namespace untuk detailnya.
 

[in, optional] lpSecurityAttributes

Penunjuk ke struktur SECURITY_ATTRIBUTES . Anggota lpSecurityDescriptor dari struktur menentukan deskriptor keamanan untuk direktori baru. Jika lpSecurityAttributes adalah NULL, direktori akan mendapatkan deskriptor keamanan default. ACL dalam deskriptor keamanan default untuk direktori diwarisi dari direktori induknya.

Sistem file target harus mendukung keamanan pada file dan direktori agar parameter ini berpengaruh. (Ini ditunjukkan ketika GetVolumeInformation mengembalikan FS_PERSISTENT_ACLS.)

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. Kemungkinan kesalahan termasuk yang berikut ini.

Menampilkan kode Deskripsi
ERROR_ALREADY_EXISTS
Direktori yang ditentukan sudah ada.
ERROR_PATH_NOT_FOUND
Satu atau beberapa direktori perantara tidak ada; fungsi ini hanya akan membuat direktori akhir di jalur.

Keterangan

Beberapa sistem file, seperti sistem file NTFS, mendukung kompresi atau enkripsi untuk file dan direktori individual. Pada volume yang diformat untuk sistem file tersebut, direktori baru mewarisi atribut kompresi dan enkripsi direktori induknya.

Aplikasi dapat memperoleh handel ke direktori dengan memanggil CreateFile dengan set bendera FILE_FLAG_BACKUP_SEMANTICS . Untuk contoh kode, lihat CreateFile.

Untuk mendukung fungsi pewarisan yang mengkueri deskriptor keamanan objek ini dapat menentukan dan melaporkan bahwa pewarisan berlaku secara heuristik. Lihat Penyebaran Otomatis ACE yang Dapat Diwariskan untuk informasi selengkapnya.

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 Mengambil dan Mengubah Atribut File.

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

CreateDirectoryEx

CreateDirectoryTransacted

CreateFile

Membuat dan Menghapus Direktori

Fungsi Manajemen Direktori

HapusDirektori

SECURITY_ATTRIBUTES

SECURITY_INFORMATION