Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

Cette classe représente un fichier d’archive gzip. Utilisez-la pour composer ou extraire des archives gzip.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

Héritage

objectGzipArchive

Implémente

IArchive, IDisposable, IArchiveFileEntry

Membres hérités

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Remarques

L’algorithme de compression Gzip est basé sur l’algorithme DEFLATE, qui est une combinaison de LZ77 et de codage Huffman.

Constructeurs

GzipArchive()

Initialise une nouvelle instance de la classe Aspose.Zip.Gzip.GzipArchive préparée pour la compression.

public GzipArchive()

Exemples

L'exemple suivant montre comment compresser un fichier.

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(Stream, bool)

Initialise une nouvelle instance de la classe Aspose.Zip.Gzip.GzipArchive préparée pour la décompression.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

Paramètres

sourceStream Stream

La source de l’archive.

parseHeader bool

Indique si l’en-tête du flux doit être analysé pour déterminer les propriétés, y compris le nom. Cela a du sens uniquement pour un flux accessible par position.

Exemples

Ouvre une archive à partir d'un flux et l'extrait vers un MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

Remarques

Ce constructeur ne décompresse pas. Voir la méthode Aspose.Zip.Gzip.GzipArchive.Open pour la décompression.

GzipArchive(string, bool)

Initialise une nouvelle instance de la classe Aspose.Zip.Gzip.GzipArchive.

public GzipArchive(string path, bool parseHeader = false)

Paramètres

path string

Le chemin vers le fichier d’archive.

parseHeader bool

Indique si l’en-tête du flux doit être analysé pour déterminer les propriétés, y compris le nom. Cela a du sens uniquement pour un flux accessible par position.

Exemples

Ouvre une archive à partir d'un fichier par chemin et l'extrait vers un MemoryStream

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

Remarques

Ce constructeur ne décompresse pas. Voir la méthode Aspose.Zip.Gzip.GzipArchive.Open pour la décompression.

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le path est vide, contient uniquement des espaces blancs ou contient des caractères invalides.

UnauthorizedAccessException

L’accès au fichier path est refusé.

PathTooLongException

Le path, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes basées sur Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

NotSupportedException

Le fichier à path contient un deux-points (:) au milieu de la chaîne.

Propriétés

Name

Nom du fichier original.

public string Name { get; }

Valeur de la propriété

string

Méthodes

Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non gérées.

public void Dispose()

Dispose(bool)

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non gérées.

protected virtual void Dispose(bool disposing)

Paramètres

disposing bool

Indique si les ressources gérées doivent être libérées.

Extract(Stream)

Extrait l’archive vers le flux fourni.

public void Extract(Stream destination)

Paramètres

destination Stream

Flux de destination. Doit être écrivable.

Exemples

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

Exceptions

ArgumentException

destination ne prend pas en charge l’écriture.

InvalidDataException

Le flux est corrompu et ne contient pas de données valides.

Extract(string)

Extrait l’archive vers le fichier par chemin.

public FileInfo Extract(string path)

Paramètres

path string

Le chemin vers le fichier de destination. Si le fichier existe déjà, il sera écrasé.

Retourne

FileInfo

Info du fichier extrait.

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le path est vide, contient uniquement des espaces blancs ou contient des caractères invalides.

UnauthorizedAccessException

L’accès au fichier path est refusé.

PathTooLongException

Le path, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes basées sur Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

NotSupportedException

Le fichier à path contient un deux-points (:) au milieu de la chaîne.

InvalidDataException

Le flux est corrompu et ne contient pas de données valides.

ExtractToDirectory(string)

Extrait le contenu de l’archive vers le répertoire fourni.

public void ExtractToDirectory(string destinationDirectory)

Paramètres

destinationDirectory string

Le chemin vers le répertoire où placer les fichiers extraits.

Remarques

Si le répertoire n’existe pas, il sera créé.

Exceptions

ArgumentNullException

destinationDirectory est nul.

PathTooLongException

Le chemin spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes basées sur Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

SecurityException

L’appelant n’a pas la permission requise pour accéder au répertoire existant.

NotSupportedException

Si le répertoire n’existe pas, le chemin contient un caractère deux-points (:) qui ne fait pas partie d’une étiquette de lecteur (“C:").

ArgumentException

destinationDirectory est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères invalides. Vous pouvez interroger les caractères invalides en utilisant la méthode System.IO.Path.GetInvalidPathChars. -ou- le chemin est préfixé par, ou contient, uniquement un caractère deux-points (:).

IOException

Le répertoire spécifié par le chemin est un fichier. -ou- Le nom du réseau n’est pas connu.

Open()

Ouvre l’archive pour extraction et fournit un flux avec le contenu de l’archive.

public Stream Open()

Retourne

Stream

Le flux qui représente le contenu de l’archive.

Exemples

Extrait l'archive et copie le contenu extrait vers un flux de fichier.

using (var archive = new GzipArchive("archive.gz"))
{
    using (var extracted = File.Create("data.bin"))
    {
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }            
}

Vous pouvez utiliser la méthode Stream.CopyTo pour .NET 4.0 et supérieur : `unpacked.CopyTo(extracted);`

Remarques

Lisez à partir du flux pour obtenir le contenu original du fichier. Voir la section des exemples.

Save(Stream)

Sauvegarde l’archive dans le flux fourni.

public void Save(Stream outputStream)

Paramètres

outputStream Stream

Flux de destination.

Exemples

Écrit les données compressées dans le flux de réponse http.

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

Remarques

outputStream doit être écrivable.

Exceptions

ArgumentException

outputStream n’est pas écrivable.

InvalidOperationException

La source n’a pas été fournie.

Save(string)

Sauvegarde l’archive dans le fichier de destination fourni.

public void Save(string destinationFileName)

Paramètres

destinationFileName string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

Exemples

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Exceptions

ArgumentNullException

destinationFileName est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le destinationFileName est vide, contient uniquement des espaces blancs ou contient des caractères invalides.

UnauthorizedAccessException

L’accès au fichier destinationFileName est refusé.

PathTooLongException

Le destinationFileName, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes basées sur Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

NotSupportedException

Le fichier à destinationFileName contient un deux-points (:) au milieu de la chaîne.

SetSource(Stream)

Définit le contenu à compresser dans l’archive.

public void SetSource(Stream source)

Paramètres

source Stream

Le flux d’entrée pour l’archive.

Exemples

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

Définit le contenu à compresser dans l’archive.

public void SetSource(FileInfo fileInfo)

Paramètres

fileInfo FileInfo

La référence à un fichier à compresser.

Exemples

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(string)

Définit le contenu à compresser dans l’archive.

public void SetSource(string path)

Paramètres

path string

Chemin vers le fichier à compresser.

Exemples

Ouvre une archive à partir d'un fichier par chemin et l'extrait vers un MemoryStream

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le path est vide, contient uniquement des espaces blancs ou contient des caractères invalides.

UnauthorizedAccessException

L’accès au fichier path est refusé.

PathTooLongException

Le path, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes basées sur Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

NotSupportedException

Le fichier à path contient un deux-points (:) au milieu de la chaîne.

SetSource(TarArchive)

Définit le contenu à compresser dans l’archive.

public void SetSource(TarArchive tarArchive)

Paramètres

tarArchive TarArchive

Archive Tar à compresser.

Exemples

using (var tarArchive = new TarArchive())
{
    tarArchive.CreateEntry("first.bin", "data1.bin");
    tarArchive.CreateEntry("second.bin", "data2.bin");
    using (var gzippedArchive = new GzipArchive())
    {
           gzippedArchive.SetSource(tarArchive);
           gzippedArchive.Save("archive.tar.gz");
    }
}

Remarques

Utilisez cette méthode pour composer une archive tar.gz conjointe.

 Français