ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry Class

Definición

Representa un archivo comprimido incluido en un archivo zip.Represents a compressed file within a zip archive.

public ref class ZipArchiveEntry
public class ZipArchiveEntry
type ZipArchiveEntry = class
Public Class ZipArchiveEntry
Herencia
ZipArchiveEntryZipArchiveEntryZipArchiveEntryZipArchiveEntry

Ejemplos

El primer ejemplo muestra cómo crear una nueva entrada en un archivo zip y escribir en él.The first example shows how to create a new entry in a zip archive and write to it.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
            Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
                Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
                Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
                    writer.WriteLine("Information about this package.")
                    writer.WriteLine("========================")
                End Using
            End Using
        End Using
    End Sub

End Module

El segundo ejemplo muestra cómo usar el ExtractToFile(ZipArchiveEntry, String) método de extensión.The second example shows how to use the ExtractToFile(ZipArchiveEntry, String) extension method. Debe hacer referencia a la System.IO.Compression.FileSystem ensamblado en el proyecto para el código se ejecute.You must reference the System.IO.Compression.FileSystem assembly in your project for the code to execute.

using System;
using System.IO;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string zipPath = @".\result.zip";

        Console.WriteLine("Provide path where to extract the zip file:");
        string extractPath = Console.ReadLine();

        // Normalizes the path.
        extractPath = Path.GetFullPath(extractPath);

        // Ensures that the last character on the extraction path
        // is the directory separator char. 
        // Without this, a malicious zip file could try to traverse outside of the expected
        // extraction path.
        if (!extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal))
            extractPath += Path.DirectorySeparatorChar;

        using (ZipArchive archive = ZipFile.OpenRead(zipPath))
        {
            foreach (ZipArchiveEntry entry in archive.Entries)
            {
                if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                {
                    // Gets the full path to ensure that relative segments are removed.
                    string destinationPath = Path.GetFullPath(Path.Combine(extractPath, entry.FullName));

                    // Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
                    // are case-insensitive.
                    if (destinationPath.StartsWith(extractPath, StringComparison.Ordinal))
                        entry.ExtractToFile(destinationPath);
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = ".\result.zip"

        Console.WriteLine("Provide path where to extract the zip file:")
        Dim extractPath As String = Console.ReadLine()

        ' Normalizes the path.
        extractPath = Path.GetFullPath(extractPath)

        ' Ensures that the last character on the extraction path
        ' is the directory separator char. 
        ' Without this, a malicious zip file could try to traverse outside of the expected
        ' extraction path.
        If Not extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal) Then
            extractPath += Path.DirectorySeparatorChar
        End If

        Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
            For Each entry As ZipArchiveEntry In archive.Entries
                If entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase) Then

                    ' Gets the full path to ensure that relative segments are removed.
                    Dim destinationPath As String = Path.GetFullPath(Path.Combine(extractPath, entry.FullName))
                    
                    ' Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
                    ' are case-insensitive.
                    If destinationPath.StartsWith(extractPath, StringComparison.Ordinal) Then 
                        entry.ExtractToFile(destinationPath)
                    End If

                End If
            Next
        End Using
    End Sub

End Module

Comentarios

Un archivo zip contiene una entrada para cada archivo comprimido.A zip archive contains an entry for each compressed file. La ZipArchiveEntry clase le permite examinar las propiedades de una entrada y abra o elimine la entrada.The ZipArchiveEntry class enables you to examine the properties of an entry, and open or delete the entry. Cuando se abre una entrada, puede modificar el archivo comprimido mediante la escritura en la secuencia de ese archivo comprimido.When you open an entry, you can modify the compressed file by writing to the stream for that compressed file.

Los métodos para manipular archivos zip y sus entradas de archivo están repartidos entre tres clases: ZipFile, ZipArchive y ZipArchiveEntry.The methods for manipulating zip archives and their file entries are spread across three classes: ZipFile, ZipArchive and ZipArchiveEntry.

Para...To… Use…Use…
Crea un archivo zip desde un directorioCreate a zip archive from a directory ZipFile.CreateFromDirectory
Extraiga el contenido de un archivo zip en un directorioExtract the contents of a zip archive to a directory ZipFile.ExtractToDirectory
Agregar nuevos archivos a un archivo zip existentesAdd new files to an existing zip archive ZipArchive.CreateEntry
Recuperar un archivo en un archivo zipRetrieve an file in a zip archive ZipArchive.GetEntry
Recuperar todos los archivos en un archivo zipRetrieve all of the files in a zip archive ZipArchive.Entries
Para abrir una secuencia a un archivo individual contenidos en un archivo zipTo open a stream to an individual file contained in a zip archive ZipArchiveEntry.Open
Eliminar un archivo de un archivo zipDelete a file from a zip archive ZipArchiveEntry.Delete

Si se hace referencia el System.IO.Compression.FileSystem ensamblado del proyecto, puede acceder a dos métodos de extensión para el ZipArchiveEntry clase.If you reference the System.IO.Compression.FileSystem assembly in your project, you can access two extension methods for the ZipArchiveEntry class. Estos métodos son ExtractToFile(ZipArchiveEntry, String) y ExtractToFile(ZipArchiveEntry, String, Boolean), y permiten al descomprimir el contenido de la entrada a un archivo.Those methods are ExtractToFile(ZipArchiveEntry, String) and ExtractToFile(ZipArchiveEntry, String, Boolean), and they enable you to decompress the contents of the entry to a file. El System.IO.Compression.FileSystem no está disponible en el ensamblado Windows 8Windows 8.The System.IO.Compression.FileSystem assembly is not available in Windows 8Windows 8. En Tienda Windows 8.xWindows 8.x Store aplicaciones, puede descomprimir el contenido de un archivo mediante el uso de DeflateStream o GZipStream, o bien puede usar el Windows en tiempo de ejecuciónWindows Runtime tipos compresor y descompresor a comprimir y descomprimir archivos.In Tienda Windows 8.xWindows 8.x Store apps, you can decompress the contents of an archive by using DeflateStream or GZipStream, or you can use the Windows en tiempo de ejecuciónWindows Runtime types Compressor and Decompressor to compress and decompress files.

Propiedades

Archive Archive Archive Archive

Obtiene el archivo zip al que pertenece la entrada.Gets the zip archive that the entry belongs to.

CompressedLength CompressedLength CompressedLength CompressedLength

Obtiene el tamaño comprimido de la entrada en el archivo zip.Gets the compressed size of the entry in the zip archive.

Crc32 Crc32 Crc32 Crc32
ExternalAttributes ExternalAttributes ExternalAttributes ExternalAttributes

Atributos de archivos específicos del sistema operativo y de las aplicaciones.OS and application specific file attributes.

FullName FullName FullName FullName

Obtiene la ruta de acceso relativa de la entrada en el archivo zip.Gets the relative path of the entry in the zip archive.

LastWriteTime LastWriteTime LastWriteTime LastWriteTime

Obtiene o establece la última vez que se cambió la entrada en el archivo zip.Gets or sets the last time the entry in the zip archive was changed.

Length Length Length Length

Obtiene el tamaño descomprimido de la entrada en el archivo zip.Gets the uncompressed size of the entry in the zip archive.

Name Name Name Name

Obtiene el nombre de archivo de la entrada en el archivo zip.Gets the file name of the entry in the zip archive.

Métodos

Delete() Delete() Delete() Delete()

Elimina la entrada del archivo zip.Deletes the entry from the zip archive.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
Open() Open() Open() Open()

Abre la entrada desde el archivo zip.Opens the entry from the zip archive.

ToString() ToString() ToString() ToString()

Recupera la ruta de acceso relativa de la entrada en el archivo zip.Retrieves the relative path of the entry in the zip archive.

Extension Methods

ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String)

Dibuja una entrada del archivo zip a un archivo.Extracts an entry in the zip archive to a file.

ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean)

Extrae una entrada del archivo zip en un archivo y, opcionalmente, sobrescribe un archivo existente que tenga el mismo nombre.Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name.

Se aplica a