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
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
path
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le path
est vide, contient uniquement des espaces blancs ou contient des caractères invalides.
L’accès au fichier path
est refusé.
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.
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é
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
destination
ne prend pas en charge l’écriture.
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
Info du fichier extrait.
Exceptions
path
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le path
est vide, contient uniquement des espaces blancs ou contient des caractères invalides.
L’accès au fichier path
est refusé.
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.
Le fichier à path
contient un deux-points (:) au milieu de la chaîne.
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
destinationDirectory
est nul.
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.
L’appelant n’a pas la permission requise pour accéder au répertoire existant.
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:").
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 (:).
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
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
outputStream
n’est pas écrivable.
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
destinationFileName
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le destinationFileName
est vide, contient uniquement des espaces blancs ou contient des caractères invalides.
L’accès au fichier destinationFileName
est refusé.
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.
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
path
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le path
est vide, contient uniquement des espaces blancs ou contient des caractères invalides.
L’accès au fichier path
est refusé.
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.
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.