Fungsi DeleteFileW (fileapi.h)
Menghapus file yang ada.
Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi
Sintaksis
BOOL DeleteFileW(
[in] LPCWSTR lpFileName
);
Parameter
[in] lpFileName
Nama file yang akan dihapus.
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 Penamaan File, Jalur, dan Namespace.
Ujung
Dimulai dengan Windows 10, Versi 1607, Anda dapat memilih untuk menghapus batasan MAX_PATH tanpa prepending "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" 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 (0). Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Jika aplikasi mencoba menghapus file yang tidak ada, fungsi
Daftar berikut mengidentifikasi beberapa tips untuk menghapus, menghapus, atau menutup file:
- Untuk menghapus file baca-saja, pertama-tama Anda harus menghapus atribut baca-saja.
- Untuk menghapus atau mengganti nama file, Anda harus memiliki izin penghapusan pada file, atau menghapus izin turunan di direktori induk.
- Untuk menghapus file secara rekursif dalam direktori, gunakan fungsi
SHFileOperation. - Untuk menghapus direktori kosong, gunakan fungsi
RemoveDirectory. - Untuk menutup file yang terbuka, gunakan fungsi closeHandle
.
Jika Anda menyiapkan direktori dengan semua akses kecuali menghapus dan menghapus anak, dan daftar kontrol akses (ACL) file baru diwariskan, maka Anda dapat membuat file tanpa dapat menghapusnya. Namun, kemudian Anda dapat membuat file, lalu mendapatkan semua akses yang Anda minta pada handel yang dikembalikan kepada Anda pada saat Anda membuat file.
Jika Anda meminta izin penghapusan pada saat membuat file, Anda dapat menghapus atau mengganti nama file dengan handel tersebut, tetapi tidak dengan handel lainnya. Untuk informasi selengkapnya, lihat Keamanan File dan Hak Akses.
Fungsi DeleteFile gagal jika aplikasi mencoba menghapus file yang memiliki handel lain yang terbuka untuk I/O normal atau sebagai file yang dipetakan memori (FILE_SHARE_DELETE harus ditentukan ketika handel lain dibuka).
Fungsi
Penggunaan penghapusan POSIX menyebabkan file dihapus saat handel tetap terbuka. Panggilan berikutnya ke CreateFile untuk membuka file gagal dengan ERROR_FILE_NOT_FOUND.
Perilaku tautan simbolis:
Jika jalur menunjuk ke tautan simbolis, tautan simbolis dihapus, bukan target. Untuk menghapus target, Anda harus memanggil CreateFile dan menentukan FILE_FLAG_DELETE_ON_CLOSE.
Di Windows 8 dan Windows Server 2012, 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 |
Contoh
Misalnya, lihat Mengunci dan Membuka Kunci Rentang Byte di File.
Nota
Header fileapi.h
mendefinisikan DeleteFile sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Platform Target |
Windows |
Header |
fileapi.h (termasuk Windows.h) |
Pustaka |
Kernel32.lib |
DLL |
Kernel32.dll |
Lihat juga
Tautan Simbolis