Fungsi OpenFile (winbase.h)
Membuat, membuka, membuka kembali, atau menghapus file.
HFILE OpenFile(
[in] LPCSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuff,
[in] UINT uStyle
);
[in] lpFileName
Nama file.
String harus terdiri dari karakter dari set karakter Windows 8-bit. Fungsi OpenFile tidak mendukung nama file Unicode atau membuka pipa bernama.
[out] lpReOpenBuff
Penunjuk ke struktur OFSTRUCT yang menerima informasi tentang file saat pertama kali dibuka.
Struktur dapat digunakan dalam panggilan berikutnya ke fungsi OpenFile untuk melihat file terbuka.
Struktur OFSTRUCT berisi anggota string jalur dengan panjang yang terbatas pada OFS_MAXPATHNAME karakter, yaitu 128 karakter. Karena itu, Anda tidak dapat menggunakan fungsi OpenFile untuk membuka file dengan panjang jalur yang melebihi 128 karakter. Fungsi CreateFile tidak memiliki batasan panjang jalur ini.
[in] uStyle
Tindakan yang akan diambil.
Parameter ini bisa menjadi satu atau beberapa nilai berikut.
Nilai | Makna |
---|---|
|
Diabaikan.
Untuk menghasilkan kotak dialog yang berisi tombol Batal, gunakan OF_PROMPT. |
|
Membuat file baru.
Jika ada, file dipotong menjadi nol (0) panjang. |
|
Menghapus file. |
|
Membuka file lalu menutupnya.
Gunakan ini untuk menguji keberadaan file. |
|
Mengisi struktur OFSTRUCT , tetapi tidak melakukan hal lain. |
|
Menampilkan kotak dialog jika file yang diminta tidak ada.
Kotak dialog memberi tahu pengguna bahwa sistem tidak dapat menemukan file, dan berisi tombol Coba Lagi dan Batal . Tombol Batal mengarahkanOpenFile untuk mengembalikan pesan kesalahan file yang tidak ditemukan. |
|
Membuka file untuk dibaca saja. |
|
Membuka file dengan izin baca/tulis. |
|
Membuka file dengan menggunakan informasi dalam buffer buka kembali. |
|
Untuk sistem file berbasis MS-DOS, membuka file dengan mode kompatibilitas, memungkinkan proses apa pun pada komputer tertentu untuk membuka file berapa kali.
Upaya lain untuk membuka file dengan mode berbagi lainnya gagal. Bendera ini dipetakan ke bendera FILE_SHARE_READ|FILE_SHARE_WRITE fungsi CreateFile . |
|
Membuka file tanpa menolak akses baca atau tulis ke proses lain.
Pada sistem file berbasis MS-DOS, jika file telah dibuka dalam mode kompatibilitas oleh proses lain, fungsi gagal. Bendera ini dipetakan ke bendera FILE_SHARE_READ|FILE_SHARE_WRITE fungsi CreateFile . |
|
Membuka file dan menolak akses baca ke proses lain.
Pada sistem file berbasis MS-DOS, jika file telah dibuka dalam mode kompatibilitas, atau untuk akses baca oleh proses lain, fungsi gagal. Bendera ini dipetakan ke bendera FILE_SHARE_WRITE fungsi CreateFile . |
|
Membuka file dan menolak akses tulis ke proses lain.
Pada sistem file berbasis MS-DOS, jika file telah dibuka dalam mode kompatibilitas, atau untuk akses tulis oleh proses lain, fungsi gagal. Bendera ini dipetakan ke bendera FILE_SHARE_READ fungsi CreateFile . |
|
Membuka file dengan mode eksklusif, dan menolak akses baca/tulis ke proses lain. Jika file telah dibuka dalam mode lain untuk akses baca/tulis, bahkan oleh proses saat ini, fungsi gagal. |
|
Memverifikasi bahwa tanggal dan waktu file sama seperti saat dibuka sebelumnya.
Ini berguna sebagai pemeriksaan tambahan untuk file baca-saja. |
|
Membuka file hanya untuk akses tulis. |
Jika fungsi berhasil, nilai yang dikembalikan menentukan handel file yang akan digunakan saat melakukan I/O file. Untuk menutup file, panggil fungsi CloseHandle menggunakan handel ini.
Jika fungsi gagal, nilai yang dikembalikan adalah HFILE_ERROR. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Jika parameter lpFileName menentukan nama file dan ekstensi saja, fungsi ini mencari file yang cocok di direktori berikut dan urutan yang diperlihatkan:
- Direktori tempat aplikasi dimuat.
- Direktori saat ini.
-
Direktori sistem Windows.
Gunakan fungsi GetSystemDirectory untuk mendapatkan jalur direktori ini.
-
Direktori sistem Windows 16-bit.
Tidak ada fungsi yang mengambil jalur direktori ini, tetapi dicari.
-
Direktori Windows.
Gunakan fungsi GetWindowsDirectory untuk mendapatkan jalur direktori ini.
- Direktori yang tercantum dalam variabel lingkungan PATH.
Fungsi OpenFile tidak mendukung bendera OF_SEARCH yang didukung fungsi Windows OpenFile 16-bit. Bendera OF_SEARCH mengarahkan sistem untuk mencari file yang cocok bahkan ketika nama file menyertakan jalur lengkap. Gunakan fungsi SearchPath untuk mencari file.
Pelanggaran berbagi terjadi jika upaya dilakukan untuk membuka file atau direktori untuk penghapusan pada komputer jarak jauh ketika nilai parameter uStyle adalah bendera akses OF_DELETE OR'ed dengan bendera akses lainnya, dan file atau direktori jarak jauh belum dibuka dengan akses berbagi FILE_SHARE_DELETE . Untuk menghindari pelanggaran berbagi dalam skenario ini, buka file atau direktori jarak jauh dengan akses OF_DELETE saja, atau panggil DeleteFile tanpa terlebih dahulu membuka file atau direktori untuk penghapusan.
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 |
CsvF akan melakukan IO yang dialihkan untuk file terkompresi.
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |