Class Archive

Class Archive

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

Cette classe représente un fichier d’archive zip. Utilisez-la pour composer, extraire ou mettre à jour des archives zip.

public class Archive : IArchive, IDisposable

Héritage

objectArchive

Implémente

IArchive, IDisposable

Membres hérités

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

Constructeurs

Archive(ArchiveEntrySettings)

Initialise une nouvelle instance de la classe Aspose.Zip.Archive avec des paramètres optionnels pour ses entrées.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Paramètres

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour les éléments Aspose.Zip.ArchiveEntry nouvellement ajoutés.
Si non spécifié, la compression Deflate la plus courante sans cryptage sera utilisée.

Exemples

L'exemple suivant montre comment compresser un seul fichier avec les paramètres par défaut.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialise une nouvelle instance de la classe Aspose.Zip.Archive et compose une liste d’entrées pouvant être extraites de l’archive.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Paramètres

sourceStream Stream

La source de l’archive.

loadOptions ArchiveLoadOptions

Options pour charger l’archive existante.

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour les éléments Aspose.Zip.ArchiveEntry nouvellement ajoutés.
Si non spécifié, la compression Deflate la plus courante sans cryptage sera utilisée.

Exemples

L'exemple suivant extrait une archive cryptée, puis décompresse la première entrée dans un MemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.ArchiveEntry.Open(System.String) pour décompresser.

Exceptions

ArgumentException

sourceStream n’est pas accessible en recherche.

InvalidDataException

L’en-tête de cryptage pour AES contredit la méthode de compression WinZip.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initialise une nouvelle instance de la classe Aspose.Zip.Archive et compose une liste d’entrées pouvant être extraites de l’archive.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Paramètres

path string

Le chemin complet ou le chemin relatif vers le fichier d’archive.

loadOptions ArchiveLoadOptions

Options pour charger l’archive existante.

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour les éléments Aspose.Zip.ArchiveEntry nouvellement ajoutés.
Si non spécifié, la compression Deflate la plus courante sans cryptage sera utilisée.

Exemples

L'exemple suivant extrait une archive cryptée, puis décompresse la première entrée dans un MemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.ArchiveEntry.Open(System.String) pour décompresser.

Exceptions

ArgumentNullException

path est nul.

SecurityException

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

ArgumentException

Le path est vide, ne contient que 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.

NotSupportedException

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

FileNotFoundException

Le fichier est introuvable.

DirectoryNotFoundException

Le chemin spécifié est invalide, comme étant sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

InvalidDataException

Le fichier est corrompu.

Archive(string, string[], ArchiveLoadOptions)

Initialise une nouvelle instance de la classe Aspose.Zip.Archive à partir d’une archive zip multi-volumes et compose une liste d’entrées pouvant être extraites de l’archive.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Paramètres

mainSegment string

Chemin vers le dernier segment de l’archive multi-volumes avec le répertoire central.

En général, ce segment a l'extension *.zip et est plus petit que les autres.

segmentsInOrder string[]

Chemins vers chaque segment sauf le dernier de l’archive zip multi-volumes dans l’ordre.

En général, ils sont nommés filename.z01, filename.z02, ..., filename.z(n-1).

loadOptions ArchiveLoadOptions

Options pour charger l’archive existante.

Exemples

Cet exemple extrait dans un répertoire une archive de trois segments.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Impossible de charger les en-têtes ZIP car les fichiers fournis sont corrompus.

Propriétés

Entries

Obtient les entrées de type Aspose.Zip.ArchiveEntry constituant l’archive.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valeur de propriété

ReadOnlyCollection<ArchiveEntry&gt;

NewEntrySettings

Paramètres de compression et de cryptage utilisés pour les éléments Aspose.Zip.ArchiveEntry nouvellement ajoutés.

public ArchiveEntrySettings NewEntrySettings { get; }

Valeur de propriété

ArchiveEntrySettings

Méthodes

CreateEntries(DirectoryInfo, bool)

Ajoute à l’archive tous les fichiers et répertoires de manière récursive dans le répertoire donné.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Paramètres

directory DirectoryInfo

Répertoire à compresser.

includeRootDirectory bool

Indique si le répertoire racine lui-même doit être inclus ou non.

Retourne

Archive

L’archive avec les entrées composées.

Exemples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Le chemin vers directory est invalide, comme étant sur un lecteur non mappé.

SecurityException

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

CreateEntries(string, bool)

Ajoute à l’archive tous les fichiers et répertoires de manière récursive dans le répertoire donné.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Paramètres

sourceDirectory string

Répertoire à compresser.

includeRootDirectory bool

Indique si le répertoire racine lui-même doit être inclus ou non.

Retourne

Archive

L’archive avec les entrées composées.

Exemples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

Crée une entrée unique dans l’archive.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Paramètres

name string

Le nom de l’entrée.

path string

Le nom complet du nouveau fichier, ou le nom de fichier relatif à compresser.

openImmediately bool

Vrai si le fichier doit être ouvert immédiatement, sinon ouvrir le fichier lors de l’enregistrement de l’archive.

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour l’élément Aspose.Zip.ArchiveEntry ajouté.

Retourne

ArchiveEntry

Instance d’entrée zip.

Exemples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarques

Le nom de l'entrée est uniquement défini dans le paramètre name. Le nom de fichier fourni dans le paramètre path n'affecte pas le nom de l'entrée.

Si le fichier est ouvert immédiatement avec le paramètre openImmediately, il devient bloqué jusqu'à ce que l'archive soit enregistrée.

Exceptions

ArgumentNullException

path est nul.

SecurityException

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

ArgumentException

Le path est vide, ne contient que 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.

NotSupportedException

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

CreateEntry(string, Stream, ArchiveEntrySettings)

Crée une entrée unique dans l’archive.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Paramètres

name string

Le nom de l’entrée.

source Stream

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

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour l’élément Aspose.Zip.ArchiveEntry ajouté.

Retourne

ArchiveEntry

Instance d’entrée zip.

Exemples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Crée une entrée unique dans l’archive.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Paramètres

name string

Le nom de l’entrée.

fileInfo FileInfo

Les métadonnées du fichier à compresser.

openImmediately bool

Vrai si le fichier doit être ouvert immédiatement, sinon ouvrir le fichier lors de l’enregistrement de l’archive.

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour l’élément Aspose.Zip.ArchiveEntry ajouté.

Retourne

ArchiveEntry

Instance d’entrée zip.

Exemples

Composer une archive avec des entrées chiffrées avec différentes méthodes de cryptage et mots de passe.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarques

Le nom de l'entrée est uniquement défini dans le paramètre name. Le nom de fichier fourni dans le paramètre fileInfo n'affecte pas le nom de l'entrée.

Si le fichier est ouvert immédiatement avec le paramètre openImmediately, il devient bloqué jusqu'à ce que l'archive soit enregistrée.

Exceptions

UnauthorizedAccessException

fileInfo est en lecture seule ou est un répertoire.

DirectoryNotFoundException

Le chemin spécifié est invalide, comme étant sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Crée une entrée unique dans l’archive.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Paramètres

name string

Le nom de l’entrée.

source Stream

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

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour l’élément Aspose.Zip.ArchiveEntry ajouté.

fileInfo FileSystemInfo

Les métadonnées du fichier ou du dossier à compresser.

Retourne

ArchiveEntry

Instance d’entrée zip.

Exemples

Composer une archive avec une entrée chiffrée.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarques

Le nom de l'entrée est uniquement défini dans le paramètre name. Le nom de fichier fourni dans le paramètre fileInfo n'affecte pas le nom de l'entrée.

fileInfo peut faire référence à System.IO.DirectoryInfo si l'entrée est un répertoire.

Exceptions

InvalidOperationException

Les deux source et fileInfo sont nuls ou source est nul et fileInfo représente un répertoire.

CreateEntry(string, Func<stream>, ArchiveEntrySettings)

Crée une entrée unique dans l’archive.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Paramètres

name string

Le nom de l’entrée.

streamProvider Func<Stream&gt;

La méthode fournissant le flux d’entrée pour l’entrée.

newEntrySettings ArchiveEntrySettings

Paramètres de compression et de cryptage utilisés pour l’élément Aspose.Zip.ArchiveEntry ajouté.

Retourne

ArchiveEntry

Instance d’entrée zip.

Exemples

Composer une archive avec une entrée chiffrée.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarques

Cette méthode est pour .NET Framework 4.0 et supérieur et pour la version .NET Standard 2.0.

DeleteEntry(ArchiveEntry)

Supprime la première occurrence d’une entrée spécifique de la liste des entrées.

public Archive DeleteEntry(ArchiveEntry entry)

Paramètres

entry ArchiveEntry

L’entrée à supprimer de la liste des entrées.

Retourne

Archive

L’archive avec l’entrée supprimée.

Exemples

Voici comment vous pouvez supprimer toutes les entrées sauf la dernière :

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

L’archive est supprimée.

DeleteEntry(int)

Supprime l’entrée de la liste des entrées par index.

public Archive DeleteEntry(int entryIndex)

Paramètres

entryIndex int

L’index basé sur zéro de l’entrée à supprimer.

Retourne

Archive

L’archive avec l’entrée supprimée.

Exemples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

L’archive est supprimée.

ArgumentOutOfRangeException

entryIndex est inférieur à 0.-ou- entryIndex est égal ou supérieur au nombre d’Entries.

Dispose()

Effectue des tâches définies par l’application associées à la libération, au relâchement 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, au relâchement 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.

ExtractToDirectory(string)

Extrait tous les fichiers de l’archive dans le répertoire fourni.

public void ExtractToDirectory(string destinationDirectory)

Paramètres

destinationDirectory string

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

Exemples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

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 Windows, les chemins doivent être inférieurs à 248 caractères et les noms de fichiers doivent être inférieurs à 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 zéro, ne contient que 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 ne contient que, 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.

InvalidDataException

Un mot de passe incorrect a été fourni. - ou - L’archive est corrompue.

Save(Stream, ArchiveSaveOptions)

Enregistre l’archive dans le flux fourni.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Paramètres

outputStream Stream

Flux de destination.

saveOptions ArchiveSaveOptions

Options pour l’enregistrement de l’archive.

Exemples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarques

outputStream doit être écrivable.

Exceptions

ArgumentException

outputStream n’est pas écrivable.

ObjectDisposedException

L’archive est supprimée.

Save(string, ArchiveSaveOptions)

Enregistre l’archive dans le fichier de destination fourni.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

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é.

saveOptions ArchiveSaveOptions

Options pour l’enregistrement de l’archive.

Exemples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarques

Il est possible d'enregistrer une archive au même chemin qu'elle a été chargée. Cependant, cela n'est pas recommandé car cette approche utilise la copie dans un fichier temporaire.

Exceptions

ArgumentNullException

destinationFileName est nul.

SecurityException

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

ArgumentException

Le destinationFileName est vide, ne contient que 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.

NotSupportedException

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

FileNotFoundException

Le fichier est introuvable.

DirectoryNotFoundException

Le chemin spécifié est invalide, comme étant sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

SaveSplit(string, SplitArchiveSaveOptions)

Enregistre une archive multi-volumes dans le répertoire de destination fourni.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Paramètres

destinationDirectory string

Le chemin vers le répertoire où les segments d’archive doivent être créés.

options SplitArchiveSaveOptions

Options pour l’enregistrement de l’archive, y compris le nom de fichier.

Exemples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarques

Cette méthode compose plusieurs (n) fichiers filename.z01, filename.z02, ..., filename.z(n-1), filename.zip.

Impossible de transformer une archive existante en multi-volumes.

Exceptions

InvalidOperationException

Cette archive a été ouverte à partir d’une source existante.

NotSupportedException

Cette archive est à la fois compressée avec la méthode XZ et cryptée.

ArgumentNullException

destinationDirectory est nul.

SecurityException

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

ArgumentException

destinationDirectory contient des caractères invalides tels que “, >, <, ou |.

PathTooLongException

Le chemin spécifié dépasse la longueur maximale définie par le système.

ObjectDisposedException

L’archive est supprimée.

 Français