ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry Class

Définition

Représente un fichier compressé dans une archive Zip.Represents a compressed file within a zip archive.

public ref class ZipArchiveEntry
public class ZipArchiveEntry
type ZipArchiveEntry = class
Public Class ZipArchiveEntry
Héritage
ZipArchiveEntryZipArchiveEntryZipArchiveEntryZipArchiveEntry

Exemples

Le premier exemple montre comment créer une nouvelle entrée dans une archive zip et y écrire.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

Le deuxième exemple montre comment utiliser la ExtractToFile(ZipArchiveEntry, String) méthode d’extension.The second example shows how to use the ExtractToFile(ZipArchiveEntry, String) extension method. Vous devez référencer System.IO.Compression.FileSystem l’assembly dans votre projet pour que le code s’exécute.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

Remarques

Une archive zip contient une entrée pour chaque fichier compressé.A zip archive contains an entry for each compressed file. La ZipArchiveEntry classe vous permet d’examiner les propriétés d’une entrée, puis d’ouvrir ou de supprimer l’entrée.The ZipArchiveEntry class enables you to examine the properties of an entry, and open or delete the entry. Lorsque vous ouvrez une entrée, vous pouvez modifier le fichier compressé en écrivant dans le flux de ce fichier compressé.When you open an entry, you can modify the compressed file by writing to the stream for that compressed file.

Les méthodes de manipulation des archives zip et leurs entrées de fichier sont réparties entre ZipFiletrois ZipArchive classes ZipArchiveEntry: et.The methods for manipulating zip archives and their file entries are spread across three classes: ZipFile, ZipArchive and ZipArchiveEntry.

À...To… Utilisez...Use…
Créer une archive zip à partir d’un répertoireCreate a zip archive from a directory ZipFile.CreateFromDirectory
Extraire le contenu d’une archive zip dans un répertoireExtract the contents of a zip archive to a directory ZipFile.ExtractToDirectory
Ajouter de nouveaux fichiers à une archive zip existanteAdd new files to an existing zip archive ZipArchive.CreateEntry
Récupérer un fichier dans une archive zipRetrieve an file in a zip archive ZipArchive.GetEntry
Récupérer tous les fichiers dans une archive zipRetrieve all of the files in a zip archive ZipArchive.Entries
Pour ouvrir un flux dans un fichier individuel contenu dans une archive zipTo open a stream to an individual file contained in a zip archive ZipArchiveEntry.Open
Supprimer un fichier d’une archive zipDelete a file from a zip archive ZipArchiveEntry.Delete

Si vous référencez System.IO.Compression.FileSystem l’assembly dans votre projet, vous pouvez accéder à deux méthodes ZipArchiveEntry d’extension pour la classe.If you reference the System.IO.Compression.FileSystem assembly in your project, you can access two extension methods for the ZipArchiveEntry class. Ces méthodes sont ExtractToFile(ZipArchiveEntry, String) et ExtractToFile(ZipArchiveEntry, String, Boolean), et elles vous permettent de décompresser le contenu de l’entrée dans un fichier.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. L' System.IO.Compression.FileSystem assembly n’est pas Windows 8Windows 8disponible dans.The System.IO.Compression.FileSystem assembly is not available in Windows 8Windows 8. Dans Windows 8.x StoreWindows 8.x Store les applications, vous pouvez décompresser le contenu d’une archive DeflateStream à GZipStreaml’aide de ou de, Windows RuntimeWindows Runtime ou vous pouvez utiliser les types compresseur et décompresseur pour compresser et décompresser les fichiers. In Windows 8.x StoreWindows 8.x Store apps, you can decompress the contents of an archive by using DeflateStream or GZipStream, or you can use the Windows RuntimeWindows Runtime types Compressor and Decompressor to compress and decompress files.

Propriétés

Archive Archive Archive Archive

Obtient l'archive ZIP à laquelle l'entrée appartient.Gets the zip archive that the entry belongs to.

CompressedLength CompressedLength CompressedLength CompressedLength

Obtient la taille compressée de l'entrée dans l'archive zip.Gets the compressed size of the entry in the zip archive.

Crc32 Crc32 Crc32 Crc32
ExternalAttributes ExternalAttributes ExternalAttributes ExternalAttributes

Attributs de fichier propres au système d’exploitation et à l’application.OS and application specific file attributes.

FullName FullName FullName FullName

Obtient le chemin d'accès relatif de l'entrée dans l'archive zip.Gets the relative path of the entry in the zip archive.

LastWriteTime LastWriteTime LastWriteTime LastWriteTime

Obtient ou définit la date de dernière modification de l'entrée dans l'archive zip.Gets or sets the last time the entry in the zip archive was changed.

Length Length Length Length

Obtient la taille décompressée de l'entrée dans l'archive zip.Gets the uncompressed size of the entry in the zip archive.

Name Name Name Name

Obtient le nom du fichier de l'entrée dans l'archive zip.Gets the file name of the entry in the zip archive.

Méthodes

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

Supprime l'entrée de l'archive zip.Deletes the entry from the zip archive.

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

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

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

Fait office de fonction de hachage par défaut.Serves as the default hash function.

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

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

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

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

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

Ouvre l'entrée à partir de l'archive zip.Opens the entry from the zip archive.

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

Extrait le chemin d'accès relatif de l'entrée dans l'archive Zip.Retrieves the relative path of the entry in the zip archive.

Méthodes d’extension

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

Extrait une entrée de l'archive zip dans un fichier.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)

Extrait une entrée dans l'archive zip d'un fichier et remplace éventuellement un fichier existant qui porte le même nom.Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name.

S’applique à