Fungsi DeleteFileA (fileapi.h)
Menghapus file yang ada.
Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi DeleteFileTransacted .
Sintaks
BOOL DeleteFileA(
[in] LPCSTR 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 menyiapkan direktori dengan semua akses kecuali menghapus dan menghapus anak, dan daftar kontrol akses (ACL) file baru diwarisi, 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 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.
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 |
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.
Catatan
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
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 | fileapi.h (sertakan Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |