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 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 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

Lihat juga

CloseHandle

CreateFileTransacted

Fungsi Manajemen File

Tautan Simbolis

NTFS Transaksi