Fungsi DeleteFile (winbase.h)
Menghapus file yang ada.
Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi DeleteFileTransacted .
Sintaks
BOOL DeleteFile(
[in] LPCTSTR lpFileName
);
Parameter
[in] lpFileName
Nama file yang akan dihapus.
Secara default, nama terbatas pada MAX_PATH karakter. Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, tambahkan "\\?\" ke jalur. Untuk informasi selengkapnya, lihat Menamai File, Jalur, dan Namespace.
Tip
Dimulai dengan Windows 10, Versi 1607, Anda dapat ikut serta untuk menghapus batasan MAX_PATH tanpa menambahkan awalan "\\?\". 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 (0). Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika aplikasi mencoba menghapus file yang tidak ada, fungsi DeleteFile gagal dengan ERROR_FILE_NOT_FOUND. Jika file adalah file baca-saja, fungsi gagal dengan ERROR_ACCESS_DENIED.
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 hapus pada file, atau menghapus izin anak 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 meminta izin hapus 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 DeleteFile menandai file untuk dihapus saat ditutup. Oleh karena itu, penghapusan file tidak terjadi sampai handel terakhir ke file ditutup. Panggilan berikutnya ke CreateFile untuk membuka file gagal dengan ERROR_ACCESS_DENIED.
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 |
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 Mengunci dan Membuka Kunci Rentang Byte dalam 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 |