Package.Open Método

Definición

Abre un paquete.

Sobrecargas

Open(Stream)

Abre un paquete en una secuencia de E/S especificada.

Open(String)

Abre un paquete en una ruta de acceso y un nombre de archivo especificados.

Open(Stream, FileMode)

Abre un paquete con una secuencia de E/S y un modo de archivo especificados.

Open(String, FileMode)

Abre un paquete en una ruta de acceso especificada con un modo de archivo especificado.

Open(Stream, FileMode, FileAccess)

Abre un paquete con una secuencia de E/S, un modo de archivo y la configuración de acceso de archivo especificados.

Open(String, FileMode, FileAccess)

Abre un paquete en una ruta de acceso especificada con un modo de archivo y la configuración de acceso de archivo especificados.

Open(String, FileMode, FileAccess, FileShare)

Abre un paquete en una ruta de acceso especificada con un modo de archivo, acceso de archivo y configuración de uso compartido de archivos especificados.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un nuevo Package que incorpora PackageRelationship elementos y PackagePart junto con datos almacenados.

//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void 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 Part
        using (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 Part
        using (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>
private static void CopyStream(Stream source, Stream target)
{
    const int 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()

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Open(Stream)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete en una secuencia de E/S especificada.

public static System.IO.Packaging.Package Open (System.IO.Stream stream);

Parámetros

stream
Stream

Secuencia de E/S en la que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

stream es null.

El paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream especificada es de sólo escritura; o bien, el paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream es de sólo lectura.

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(String)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete en una ruta de acceso y un nombre de archivo especificados.

public static System.IO.Packaging.Package Open (string path);

Parámetros

path
String

Ruta de acceso y nombre de archivo del paquete.

Devoluciones

El paquete abierto.

Excepciones

path es null.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un nuevo Package que incorpora PackageRelationship elementos y PackagePart junto con datos almacenados.

//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void 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 Part
        using (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 Part
        using (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>
private static void CopyStream(Stream source, Stream target)
{
    const int 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()

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Este Open método abre el paquete con atributos predeterminados OpenOrCreate, ReadWritey None (para especificar atributos diferentes, use una de las otras sobrecargas del método Open).

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(Stream, FileMode)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete con una secuencia de E/S y un modo de archivo especificados.

public static System.IO.Packaging.Package Open (System.IO.Stream stream, System.IO.FileMode packageMode);

Parámetros

stream
Stream

Secuencia de E/S en la que se va a abrir el paquete.

packageMode
FileMode

Modo de archivo en el que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

stream es null.

El valor de packageMode no es válido.

El paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream especificada es de sólo escritura; o bien, el paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream es de sólo lectura.

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(String, FileMode)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete en una ruta de acceso especificada con un modo de archivo especificado.

public static System.IO.Packaging.Package Open (string path, System.IO.FileMode packageMode);

Parámetros

path
String

Ruta de acceso y nombre de archivo del paquete.

packageMode
FileMode

Modo de archivo en el que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

path es null.

El valor de packageMode no es válido.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un nuevo Package que incorpora PackageRelationship elementos y PackagePart junto con datos almacenados.

//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void 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 Part
        using (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 Part
        using (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>
private static void CopyStream(Stream source, Stream target)
{
    const int 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()

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Este Open método abre el paquete con atributos predeterminados ReadWrite y None (para especificar atributos diferentes, use una de las otras sobrecargas del método Open).

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(Stream, FileMode, FileAccess)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete con una secuencia de E/S, un modo de archivo y la configuración de acceso de archivo especificados.

public static System.IO.Packaging.Package Open (System.IO.Stream stream, System.IO.FileMode packageMode, System.IO.FileAccess packageAccess);

Parámetros

stream
Stream

Secuencia de E/S en la que se va a abrir el paquete.

packageMode
FileMode

Modo de archivo en el que se va a abrir el paquete.

packageAccess
FileAccess

Acceso de archivo en el que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

stream es null.

El valor de packageMode o packageAccess no es válido.

El paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream especificada es de sólo escritura; o bien, el paquete que va a abrirse requiere permisos de lectura o de lectura y escritura y la stream es de sólo lectura.

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(String, FileMode, FileAccess)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete en una ruta de acceso especificada con un modo de archivo y la configuración de acceso de archivo especificados.

public static System.IO.Packaging.Package Open (string path, System.IO.FileMode packageMode, System.IO.FileAccess packageAccess);

Parámetros

path
String

Ruta de acceso y nombre de archivo del paquete.

packageMode
FileMode

Modo de archivo en el que se va a abrir el paquete.

packageAccess
FileAccess

Acceso de archivo en el que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

path es null.

El valor de packageMode o packageAccess no es válido.

Ejemplos

En el ejemplo siguiente se muestra cómo abrir y leer un Package objeto que contiene PackageRelationship y PackagePart elementos junto con los datos almacenados.

// Open the Package.
// ('using' statement insures that 'package' is
//  closed and disposed when it goes out of scope.)
using (Package package =
    Package.Open(packagePath, FileMode.Open, FileAccess.Read))
{
    PackagePart documentPart = null;
    PackagePart resourcePart = null;

    // Get the Package Relationships and look for
    //   the Document part based on the RelationshipType
    Uri uriDocumentTarget = null;
    foreach (PackageRelationship relationship in
        package.GetRelationshipsByType(PackageRelationshipType))
    {
        // Resolve the Relationship Target Uri
        //   so the Document Part can be retrieved.
        uriDocumentTarget = PackUriHelper.ResolvePartUri(
            new Uri("/", UriKind.Relative), relationship.TargetUri);

        // Open the Document Part, write the contents to a file.
        documentPart = package.GetPart(uriDocumentTarget);
        ExtractPart(documentPart, targetDirectory);
    }

    // Get the Document part's Relationships,
    //   and look for required resources.
    Uri uriResourceTarget = null;
    foreach (PackageRelationship relationship in
        documentPart.GetRelationshipsByType(
                                ResourceRelationshipType))
    {
        // Resolve the Relationship Target Uri
        //   so the Resource Part can be retrieved.
        uriResourceTarget = PackUriHelper.ResolvePartUri(
            documentPart.Uri, relationship.TargetUri);

        // Open the Resource Part and write the contents to a file.
        resourcePart = package.GetPart(uriResourceTarget);
        ExtractPart(resourcePart, targetDirectory);
    }
}// end:using(Package package) - Close & dispose package.

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Este Open método abre el paquete con un atributo predeterminado None (para especificar otro atributo, use la sobrecarga del Open método).

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Open(String, FileMode, FileAccess, FileShare)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Abre un paquete en una ruta de acceso especificada con un modo de archivo, acceso de archivo y configuración de uso compartido de archivos especificados.

public static System.IO.Packaging.Package Open (string path, System.IO.FileMode packageMode, System.IO.FileAccess packageAccess, System.IO.FileShare packageShare);

Parámetros

path
String

Ruta de acceso y nombre de archivo del paquete.

packageMode
FileMode

Modo de archivo en el que se va a abrir el paquete.

packageAccess
FileAccess

Acceso de archivo en el que se va a abrir el paquete.

packageShare
FileShare

Modo de uso compartido de archivos en el que se va a abrir el paquete.

Devoluciones

El paquete abierto.

Excepciones

path es null.

El valor de packageMode, packageAccess o packageShare no es válido.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un nuevo Package que incorpora PackageRelationship elementos y PackagePart junto con datos almacenados.

//  -------------------------- CreatePackage --------------------------
/// <summary>
///   Creates a package zip file containing specified
///   content and resource files.</summary>
private static void 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 Part
        using (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 Part
        using (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>
private static void CopyStream(Stream source, Stream target)
{
    const int 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()

Comentarios

ZipPackage es el tipo de paquete predeterminado que usa el Open método .

Para obtener más información, consulte la especificación De convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9