Kontainer: File Campuran
Artikel ini menjelaskan komponen dan implementasi file majemuk dan kelebihan dan kekurangan menggunakan file majemuk di aplikasi OLE Anda.
File majemuk adalah bagian integral dari OLE. Mereka digunakan untuk memfasilitasi transfer data dan penyimpanan dokumen OLE. File gabungan adalah implementasi dari model penyimpanan terstruktur Aktif. Ada antarmuka yang konsisten yang mendukung serialisasi ke penyimpanan, aliran, atau objek file. File majemuk didukung di Pustaka Kelas Microsoft Foundation oleh kelas COleStreamFile
dan COleDocument
.
Catatan
Menggunakan file gabungan tidak menyiratkan bahwa informasi berasal dari dokumen OLE atau dokumen gabungan. File gabungan hanyalah salah satu cara untuk menyimpan dokumen campuran, dokumen OLE, dan data lainnya.
Komponen File Gabungan
Implementasi OLE dari file campuran menggunakan tiga jenis objek: objek aliran, objek penyimpanan, dan ILockBytes
objek. Objek-objek ini mirip dengan komponen sistem file standar dengan cara berikut:
Streaming objek, seperti file, menyimpan data dari jenis apa pun.
Objek penyimpanan, seperti direktori, dapat berisi objek penyimpanan dan streaming lainnya.
LockBytes
objek mewakili antarmuka antara objek penyimpanan dan perangkat keras fisik. Mereka menentukan bagaimana byte aktual ditulis ke perangkatLockBytes
penyimpanan apa pun yang diakses objek, seperti hard drive atau area memori global. Untuk informasi selengkapnya tentangLockBytes
objek danILockBytes
antarmuka, lihat Referensi Programmer OLE.
Keuntungan dan Kekurangan File Mabuk
File gabungan memberikan manfaat yang tidak tersedia dengan metode penyimpanan file sebelumnya. Mereka meliputi:
Akses file inkremental.
Mode akses file.
Standardisasi struktur file.
Potensi kerugian file majemuk — masalah ukuran besar dan performa yang berkaitan dengan penyimpanan pada disket — harus dipertimbangkan saat memutuskan apakah akan menggunakannya dalam aplikasi Anda.
Akses Inkremental ke File
Akses inkremental ke file adalah manfaat otomatis menggunakan file gabungan. Karena file gabungan dapat dilihat sebagai "sistem file dalam file," jenis objek individual, seperti aliran atau penyimpanan, dapat diakses tanpa perlu memuat seluruh file. Ini dapat secara dramatis mengurangi waktu yang dibutuhkan aplikasi untuk mengakses objek baru untuk diedit oleh pengguna. Pembaruan inkremental, berdasarkan konsep yang sama, menawarkan manfaat serupa. Alih-alih menyimpan seluruh file hanya untuk menyimpan perubahan yang dilakukan pada satu objek, OLE hanya menyimpan objek aliran atau penyimpanan yang diedit oleh pengguna.
Mode Akses File
Mampu menentukan kapan perubahan pada objek dalam file gabungan diterapkan ke disk adalah manfaat lain dari menggunakan file campuran. Mode di mana file diakses, baik yang ditransaksikan atau langsung, menentukan kapan perubahan dilakukan.
Mode yang ditransaksikan menggunakan operasi penerapan dua fase untuk membuat perubahan pada objek dalam file majemuk, sehingga menyimpan salinan dokumen lama dan baru yang tersedia sampai pengguna memilih untuk menyimpan atau membatalkan perubahan.
Mode langsung menggabungkan perubahan pada dokumen saat dibuat, tanpa kemampuan untuk membatalkannya nanti.
Untuk informasi selengkapnya tentang mode akses, lihat Referensi Programmer OLE.
Standardisasi
Struktur file majemuk yang distandarkan memungkinkan aplikasi OLE yang berbeda untuk menelusuri file majemuk yang dibuat oleh aplikasi OLE Anda tanpa pengetahuan tentang aplikasi yang benar-benar membuat file.
Pertimbangan Ukuran dan Performa
Karena kompleksitas struktur penyimpanan file campuran dan kemampuan untuk menyimpan data secara bertahap, file yang menggunakan format ini cenderung lebih besar daripada file lain menggunakan penyimpanan yang tidak terstruktur atau "file datar". Jika aplikasi Anda sering memuat dan menyimpan file, menggunakan file campuran dapat menyebabkan ukuran file meningkat jauh lebih cepat daripada file yang tidak lengkap. Karena file gabungan bisa menjadi besar, waktu akses untuk file yang disimpan dan dimuat dari disket juga dapat terpengaruh, sehingga akses file menjadi lebih lambat.
Masalah lain yang memengaruhi performa adalah fragmentasi file majemuk. Ukuran file gabungan ditentukan oleh perbedaan antara sektor disk pertama dan terakhir yang digunakan oleh file. File terfragmentasi dapat berisi banyak area ruang kosong yang tidak berisi data, tetapi dihitung saat menghitung ukurannya. Selama masa pakai file gabungan, area ini dibuat oleh penyisipan atau penghapusan objek penyimpanan.
Menggunakan Format File Campuran untuk Data Anda
Setelah berhasil membuat aplikasi yang memiliki kelas dokumen yang berasal dari COleDocument
, pastikan konstruktor dokumen utama Anda memanggil EnableCompoundFile
. Saat wizard aplikasi membuat aplikasi kontainer OLE, panggilan ini disisipkan untuk Anda.
Di Referensi Programmer OLE, lihat IStream, IStorage, dan ILockBytes.
Baca juga
Kontainer
Kontainer: Masalah Antarmuka Pengguna
Kelas COleStreamFile
Kelas COleDocument