Share via


Conteneurs : fichiers composés

Cet article explique les composants et l'implémentation des fichiers composés et les avantages et les inconvénients de l'utilisation des fichiers composés dans vos applications OLE.

Les fichiers composés font partie intégrante d'OLE.Ils sont utilisés pour faciliter le transfert de données et le stockage des documents OLE.Les fichiers composés sont une implémentation du modèle de stockage structuré actif.Les interfaces homogènes existent cette sérialisation de support à un stockage, dans un flux, ou à un fichier objet.Les fichiers composés sont pris en charge dans la bibliothèque MFC par les classes COleStreamFile et COleDocument.

[!REMARQUE]

À l'aide d'un fichier composite n'implique pas que les informations proviennent d'OLE document ou d'un document composite.Les fichiers composés sont simplement l'une des méthodes pour enregistrer des documents composites, de documents OLE, et d'autres données.

Composants d'un fichier composé

OLE implémentation des fichiers composés utilise trois types d'objets : objets de flux, objets de stockage, et objets d' ILockBytes .Ces objets sont semblables aux composants d'un système de fichiers standard des façons suivantes :

  • Objets de flux, comme les fichiers, stocker des données de tous types.

  • Les objets de stockage, comme les répertoires, peuvent contenir d'autres stockage et objets de flux.

  • Les objets deLockBytes représentent l'interface entre les objets de stockage et le matériel physique.Ils déterminent la manière dont les octets réels sont écrits dans n'importe quel dispositif de stockage l'objet de LockBytes accède, par exemple un disque dur ou une zone de mémoire globale.Pour plus d'informations sur les objets de LockBytes et l'interface d' ILockBytes , consultez la notion de référence du programmeur.

Avantages et inconvénients des fichiers composés

Les fichiers composés fournissent des avantages pas disponibles avec des méthodes précédemment de stockage de fichiers.Ces avantages comprennent :

  • Accès incrémentiel de fichier.

  • Modes d'accès au fichier.

  • Normalisation de structure de fichiers.

Les inconvénients potentiels des fichiers composés — grande taille et les problèmes de performances relativement au stockage des disquettes — doivent être considérés au moment de déterminer si les utiliser dans votre application.

ydd3k45e.collapse_all(fr-fr,VS.110).gifAccès aux fichiers incrémentielle

L'accès aux fichiers incrémentiel présente un avantage automatique d'utiliser des fichiers composés.Étant donné qu'un fichier composite peut être affiché comme « système de fichiers dans un fichier, » différents types d'objet, tels que le flux de données ou le stockage, sont accessibles sans avoir à charger le fichier entier.Cela peut considérablement réduire le temps lorsqu'une application doit accéder à de nouveaux objets pour modifier par l'utilisateur.Incrémentiel mise à jour, selon le même concept, les avantages semblables d'autres fonctionnalités.Au lieu de stocker le fichier entier uniquement pour enregistrer les modifications apportées à un objet, OLE stocke uniquement le flux de données ou l'objet de stockage modifié par l'utilisateur.

ydd3k45e.collapse_all(fr-fr,VS.110).gifModes d'accès au fichier

Déterminer quand les modifications apportées aux objets d'un fichier composé sont validées sur le disque est un autre avantage d'utiliser des fichiers composés.Le mode dans lequel les fichiers sont accessibles, traité ou invitent, détermine lorsque les modifications sont validées.

  • Le mode traité utilise une opération de validation en deux phases pour apporter des modifications aux objets dans un fichier composé, en conservant ainsi les copies anciennes et nouvelles de le document disponible jusqu'à ce que l'utilisateur a choisi à sauvegarder ou annuler les modifications.

  • Le mode direct incorpore des modifications au document à mesure qu'elles sont effectuées, sans possibilité de les annuler ultérieurement.

Pour plus d'informations sur les modes d'accès, consultez la notion de référence du programmeur.

ydd3k45e.collapse_all(fr-fr,VS.110).gifNormalisation

La structure standardisée des fichiers composés permet à différentes applications OLE de parcourir les fichiers composés créés par l'application OLE sans aucune connaissance de l'application qui a créé en fait le fichier.

ydd3k45e.collapse_all(fr-fr,VS.110).gifConsidérations de hauteur et de performances

En raison de la complexité de la structure de stockage du fichier composé et de la possibilité d'enregistrer des données de façon incrémentielle, les fichiers à l'aide de ce format ont tendance à être plus grand que d'autres fichiers à l'aide de stockage non structurée ou le « fichier » repas.Si votre application fréquemment charge et stocke les fichiers, à l'aide de les fichiers composés peut faire pour augmenter la taille de fichier beaucoup plus rapides que les fichiers de noncompound.Étant donné que les fichiers composés peuvent devenir volumineux, le temps d'accès des fichiers a enregistré sur et le chargement à partir des disquettes peut également être affecté, ce qui génère un accès plus lent aux fichiers.

L'autre rubrique qui affecte les performances sont fragmentation de fichier composé.La taille d'un fichier composé est déterminée par la différence entre la première et la dernière secteurs de disque utilisés par le fichier.Un fichier fragmenté peut contenir plusieurs zones d'espace libre qui ne contiennent pas de données, mais est compté en calculant la taille.Pendant la durée de vie d'un fichier composé, ces zones sont créées par l'insertion ou la suppression d'objets de stockage.

À l'aide de le format de fichiers composés pour vos données

Après que de créer avec succès une application qui possède une classe de document dérivée d' COleDocument, vérifiez que votre constructeur du document principal appelle EnableCompoundFile.Lorsque l'Assistant Application crée des applications de conteneur OLE, cet appel est inséré pour vous.

Dans OLE référence du programmeur, consultez IStream, IStorage, et l' ILockBytes.

Voir aussi

Référence

COleStreamFile, classe

COleDocument, classe

Concepts

Conteneurs

Conteneurs : Problèmes d'interface utilisateur