Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe ZipPackage

Implementa uma subclasse derivada do abstrata Package classe base — a ZipPackage classe usa um arquivar ZIP, sistema autônomo o armazenamento de contêiner. Esta classe não pode ser herdada.

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (em WindowsBase.dll)

public sealed class ZipPackage : Package
Você não pode criar diretamente uma instância dessa classe em XAML.

The Pacote.Open usos de método ZipPackage recipientes por padrão.

Este exemplo mostra como criar um básico ZipPackage.

O exemplo cria um pacote que contém uma parte do documento único que é definida sistema autônomo elemento de raiz do pacote por um nível de pacote PackageRelationship.

O pacote também contém uma parte da imagem e um segundo PackageRelationship que define uma associação entre a parte do documento de fonte e a parte da imagem de destino. (A imagem é um recurso é usado com o documento).

//  -------------------------- CreatePackage --------------------------/// <summary>///   Creates a package zip file containing specified///   content and resource files.</summary>privatestaticvoid CreatePackage()
{
    // Convert system path and file names to Part URIs. In this example// Uri partUriDocument /* /Content/Document.xml */ =
    //     PackUriHelper.CreatePartUri(//         new Uri("Content\Document.xml", UriKind.Relative));
    // Uri partUriResource /* /Resources/Image1.jpg */ =
    //     PackUriHelper.CreatePartUri(//         new Uri("Resources\Image1.jpg", UriKind.Relative));
    Uri partUriDocument = PackUriHelper.CreatePartUri(
                              new Uri(documentPath, UriKind.Relative));
    Uri partUriResource = PackUriHelper.CreatePartUri(
                              new Uri(resourcePath, UriKind.Relative));

    // Create the Package// (If the package file already exists, FileMode.Create will//  automatically delete it first before creating a new one.//  The 'using' statement insures that 'package' is//  closed and disposed when it goes out of scope.)using (Package package =
        Package.Open(packagePath, FileMode.Create))
    {
        // Add the Document part to the Package
        PackagePart packagePartDocument =
            package.CreatePart(partUriDocument,
                           System.Net.Mime.MediaTypeNames.Text.Xml);

        // Copy the data to the Document Partusing (FileStream fileStream = new FileStream(
               documentPath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartDocument.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.// Add a Package Relationship to the Document Part
        package.CreateRelationship(packagePartDocument.Uri,
                                   TargetMode.Internal,
                                   PackageRelationshipType);

        // Add a Resource Part to the Package
        PackagePart packagePartResource =
            package.CreatePart(partUriResource,
                           System.Net.Mime.MediaTypeNames.Image.Jpeg);

        // Copy the data to the Resource Partusing (FileStream fileStream = new FileStream(
               resourcePath, FileMode.Open, FileAccess.Read))
        {
            CopyStream(fileStream, packagePartResource.GetStream());
        }// end:using(fileStream) - Close and dispose fileStream.// Add Relationship from the Document part to the Resource part
        packagePartDocument.CreateRelationship(
                                new Uri(@"../resources/image1.jpg",
                                UriKind.Relative),
                                TargetMode.Internal,
                                ResourceRelationshipType);

    }// end:using (Package package) - Close and dispose package.

}// end:CreatePackage()//  --------------------------- CopyStream ---------------------------/// <summary>///   Copies data from a source stream to a target stream.</summary>/// <param name="source">
///   The source stream to copy from.</param>/// <param name="target">
///   The destination stream to copy to.</param>privatestaticvoid CopyStream(Stream source, Stream target)
{
    constint bufSize = 0x1000;
    byte[] buf = new byte[bufSize];
    int bytesRead = 0;
    while ((bytesRead = source.Read(buf, 0, bufSize)) > 0)
        target.Write(buf, 0, bytesRead);
}// end:CopyStream()

For the complete sample, see Escrever um exemplo de pacote.

System.Object
  System.IO.Packaging.Package
    System.IO.Packaging.ZipPackage

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft