Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghapus direktori kosong yang ada. Fungsi ini akan gagal jika ada bagian dari lpPathName yang dialihkan melalui titik pemisahan ulang atau tautan simbolis.
Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi RemoveDirectoryTransacted .
Sintaksis
BOOL RemoveDirectory2W(
LPCWSTR lpPathName,
DIRECTORY_FLAGS DirectoryFlags
);
Parameter-parameternya
lpPathName
Jalur direktori yang akan dihapus. Jalur ini harus menentukan direktori kosong, dan proses panggilan harus memiliki akses penghapusan ke direktori.
Secara default, nama dibatasi untuk MAX_PATH karakter. Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, tambahkan awal "\\?\" ke jalur. Untuk informasi selengkapnya, lihat Menamai File, Jalur, dan Namespace.
Petunjuk / Saran
Anda dapat ikut serta untuk menghapus batasan MAX_PATH tanpa menambahkan sebelumnya "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" dari Penamaan File, Jalur, dan Namespace untuk detailnya.
DirectoryFlags
Bendera yang menentukan bagaimana direktori akan dihapus. Parameter ini bisa menjadi kombinasi dari nilai berikut:
Nilai | Makna |
---|---|
DIRECTORY_FLAGS_DISALLOW_PATH_REDIRECTS0x00000001 |
Cegah lpPathName dialihkan oleh titik pemisahan ulang atau tautan simbolis. |
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Fungsi RemoveDirectory2 menandai direktori untuk dihapus saat ditutup. Oleh karena itu, direktori tidak dihapus sampai handel terakhir ke direktori ditutup.
Untuk menghapus file secara rekursif dalam direktori, gunakan fungsi SHFileOperation .
RemoveDirectory2 dapat digunakan untuk menghapus persimpangan direktori. Karena direktori target dan kontennya akan tetap dapat diakses melalui jalur kanonisnya, direktori target itu sendiri tidak terpengaruh dengan menghapus persimpangan yang menargetkannya. Untuk alasan ini, ketika lpPathName mengacu pada persimpangan direktori, RemoveDirectory2 akan menghapus tautan yang ditentukan terlepas dari apakah direktori target kosong atau tidak. Untuk informasi selengkapnya tentang persimpangan, lihat Hard Links dan Junctions.
Penggunaan penghapusan POSIX menyebabkan direktori dihapus saat handel tetap terbuka. Panggilan berikutnya ke CreateDirectory atau CreateDirectory2 untuk membuka direktori gagal dengan ERROR_FILE_NOT_FOUND.
Fungsi ini didukung oleh teknologi berikut:
Teknologi | Didukung |
---|---|
Protokol Server Message Block (SMB) 3.0 | Ya |
Failover Transparan (TFO) SMB 3.0 | Ya |
SMB 3.0 dengan Scale-out File Shares (SO) | Ya |
Sistem File Volume Bersama Kluster (CsvFS) | Ya |
Sistem File Tangguh (ReFS) | Ya |
Nota
Header fileapi.h
mendefinisikan RemoveDirectory2 sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
klien minimum yang didukung | Windows 11 24H2 [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung | Windows Server 2025 [aplikasi desktop | Aplikasi UWP] |
Tajuk | fileapi.h (termasuk Windows.h) |
Perpustakaan | Kernel32.lib |
DLL | Kernel32.dll |