Fungsi DeleteFileTransactedA (winbase.h)
[Microsoft sangat menyarankan pengembang menggunakan cara alternatif untuk mencapai kebutuhan aplikasi Anda. Banyak skenario yang dikembangkan TxF dapat dicapai melalui teknik yang lebih sederhana dan lebih tersedia. Selain itu, TxF mungkin tidak tersedia di versi Microsoft Windows yang akan datang. Untuk informasi lebih lanjut, dan alternatif TxF, silakan lihat Alternatif untuk menggunakan Transactional NTFS.]
Menghapus file yang ada sebagai operasi yang ditransaksikan.
Sintaks
BOOL DeleteFileTransactedA(
[in] LPCSTR lpFileName,
[in] HANDLE hTransaction
);
Parameter
[in] lpFileName
Nama file yang akan dihapus.
Secara default, namanya 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 memilih untuk menghapus batasan MAX_PATH tanpa menambahkan sebelumnya "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" di Penamaan File, Jalur, dan Namespace untuk detailnya.
File harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] hTransaction
Handel ke transaksi. Handel ini dikembalikan oleh fungsi CreateTransaction .
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah 0 (nol). Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika aplikasi mencoba menghapus file yang tidak ada, fungsi DeleteFileTransacted 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 RemoveDirectoryTransacted .
- Untuk menutup file yang terbuka, gunakan fungsi CloseHandle .
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 DeleteFileTransacted 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 DeleteFileTransacted menandai file untuk dihapus saat ditutup. File dihapus setelah handel penulis terakhir yang ditransaksikan ke file ditutup, asalkan transaksi masih aktif. Jika file telah ditandai untuk dihapus dan handel penulis yang ditransaksikan masih terbuka setelah transaksi selesai, file tidak akan dihapus.
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 | Tidak |
SMB 3.0 Transparent Failover (TFO) | Tidak |
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) | Tidak |
Sistem File Volume Bersama Kluster (CsvFS) | Tidak |
Sistem File Tangguh (ReFS) | Tidak |
SMB 3.0 tidak mendukung TxF.
Catatan
Header winbase.h mendefinisikan DeleteFileTransacted 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 Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |