Kontejnery: Složené soubory
Tento článek vysvětluje komponenty a implementaci složených souborů a výhody a nevýhody použití složených souborů v aplikacích OLE.
Složené soubory jsou nedílnou součástí OLE. Slouží k usnadnění přenosu dat a ukládání dokumentů OLE. Složené soubory představují implementaci modelu aktivního strukturovaného úložiště. Existují konzistentní rozhraní, která podporují serializaci do úložiště, datového proudu nebo objektu souboru. Složené soubory jsou podporovány v knihovně tříd Microsoft Foundation třídy COleStreamFile
a COleDocument
.
Poznámka
Použití složeného souboru neznamená, že informace pocházejí z dokumentu OLE nebo složeného dokumentu. Složené soubory jsou jen jedním ze způsobů, jak ukládat složené dokumenty, dokumenty OLE a další data.
Součásti složeného souboru
Implementace OLE složených souborů používá tři typy objektů: stream objekty, objekty úložiště a ILockBytes
objekty. Tyto objekty jsou podobné komponentám standardního systému souborů následujícími způsoby:
Streamují objekty, jako jsou soubory, ukládají data libovolného typu.
Objekty úložiště, jako jsou adresáře, můžou obsahovat další objekty úložiště a streamu.
LockBytes
objekty představují rozhraní mezi objekty úložiště a fyzickým hardwarem. Určují, jak se skutečné bajty zapisují do libovolného úložného zařízení,LockBytes
ke kterým objekt přistupuje, například na pevný disk nebo oblast globální paměti. Další informace oLockBytes
objektech aILockBytes
rozhraní naleznete v tématu OLE Programátor reference.
Výhody a nevýhody složených souborů
Složené soubory poskytují výhody, které nejsou k dispozici v dřívějších metodách úložiště souborů. Patří mezi ně:
Přírůstkový přístup k souborům
Režimy přístupu k souborům
Standardizace struktury souborů.
Potenciální nevýhody složených souborů – velké velikosti a problémy s výkonem související s úložištěm na disketách – by se měly zvážit při rozhodování, zda je použít ve vaší aplikaci.
Přírůstkový přístup k souborům
Přírůstkový přístup k souborům je automatickou výhodou používání složených souborů. Vzhledem k tomu, že složený soubor lze zobrazit jako "systém souborů v rámci souboru", je možné přistupovat k jednotlivým typům objektů, jako je datový proud nebo úložiště, aniž by bylo nutné načíst celý soubor. To může výrazně zkrátit dobu, po kterou aplikace potřebuje přístup k novým objektům pro úpravy uživatelem. Přírůstková aktualizace na základě stejného konceptu nabízí podobné výhody. Místo uložení celého souboru pouze pro uložení změn provedených v jednom objektu uloží OLE pouze datový proud nebo objekt úložiště upravovaný uživatelem.
Režimy přístupu k souborům
Schopnost určit, kdy se změny objektů ve složeného souboru potvrdí na disk, je další výhodou použití složených souborů. Režim, ve kterém se k souborům přistupuje, buď transakce, nebo přímé, určuje, kdy jsou změny potvrzeny.
Transacted režim používá dvoufázovou operaci potvrzení k provádění změn objektů ve složeného souboru, čímž zachová staré i nové kopie dokumentu k dispozici, dokud se uživatel nerozhodne změny uložit nebo vrátit zpět.
Přímý režim zahrnuje změny dokumentu při jejich provedení, aniž by bylo možné je později vrátit zpět.
Další informace o režimech přístupu naleznete v referenční dokumentaci programátora OLE.
Normalizaci
Standardizovaná struktura složených souborů umožňuje různým aplikacím OLE procházet složené soubory vytvořené vaší aplikací OLE bez znalosti aplikace, která soubor skutečně vytvořila.
Důležité informace o velikosti a výkonu
Vzhledem ke složitosti struktury složeného úložiště souborů a možnosti přírůstkového ukládání dat jsou soubory používající tento formát větší než jiné soubory používající nestrukturované nebo ploché úložiště. Pokud se vaše aplikace často načítá a ukládá soubory, může použití složených souborů způsobit, že velikost souboru bude mnohem rychlejší než nekompatibilní soubory. Vzhledem k tomu, že složené soubory můžou být velké, může to mít vliv i na dobu přístupu k souborům uloženým a načteným z disketových disků, což vede k pomalejšímu přístupu k souborům.
Dalším problémem, který má vliv na výkon, je fragmentace složených souborů. Velikost složeného souboru je určena rozdílem mezi prvním a posledním sektorem disku používaným souborem. Fragmentovaný soubor může obsahovat mnoho oblastí volného místa, které neobsahují data, ale při výpočtu velikosti se počítají. Během životnosti složeného souboru se tyto oblasti vytvářejí vložením nebo odstraněním objektů úložiště.
Použití formátu složených souborů pro vaše data
Po úspěšném vytvoření aplikace, která má třídu dokumentu odvozenou z COleDocument
, ujistěte se, že hlavní konstruktor dokumentu volá EnableCompoundFile
. Když průvodce aplikací vytvoří aplikace kontejneru OLE, toto volání se vloží za vás.
V odkazech programátorů OLE viz IStream, IStorage a ILockBytes.
Viz také
Kontejnery
Kontejnery: Problémy uživatelského rozhraní
COleStreamFile – třída
COleDocument – třída