Class SevenZipArchive

Class SevenZipArchive

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

Cette classe représente un fichier d’archive 7z. Utilisez-la pour composer et extraire des archives 7z.

public class SevenZipArchive : IArchive, IDisposable

Héritage

objectSevenZipArchive

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

SevenZipArchive(SevenZipEntrySettings)

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

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Paramètres

newEntrySettings SevenZipEntrySettings

Paramètres de compression et de chiffrement utilisés pour les nouveaux éléments Aspose.Zip.SevenZip.SevenZipArchiveEntry ajoutés. Si non spécifié, la compression LZMA sans chiffrement sera utilisée.

Exemples

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

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Initialise une nouvelle instance de la classe Aspose.Zip.SevenZip.SevenZipArchive et compose une liste d’entrées qui peut être extraite de l’archive.

public SevenZipArchive(Stream sourceStream, string password = null)

Paramètres

sourceStream Stream

La source de l’archive.

password string

Mot de passe optionnel pour le déchiffrement. Si les noms de fichiers sont chiffrés, il doit être présent.

Exemples

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) pour la décompression.

Exceptions

ArgumentException

sourceStream n’est pas accessible en recherche.

ArgumentNullException

sourceStream est nul.

NotImplementedException

L’archive contient plus d’un codeur. Actuellement, seule la compression LZMA est prise en charge.

SevenZipArchive(string, string)

Initialise une nouvelle instance de la classe Aspose.Zip.SevenZip.SevenZipArchive et compose une liste d’entrées qui peut être extraite de l’archive.

public SevenZipArchive(string path, string password = null)

Paramètres

path string

Le chemin complètement qualifié ou le chemin relatif vers le fichier d’archive.

password string

Mot de passe optionnel pour le déchiffrement. Si les noms de fichiers sont chiffrés, il doit être présent.

Exemples

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) pour la décompression.

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas l’autorisation requise pour accéder.

ArgumentException

Le path est vide, ne contient que des espaces vides, 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 au path contient un deux-points (:) au milieu de la chaîne.

FileNotFoundException

Le fichier est introuvable.

DirectoryNotFoundException

Le chemin spécifié est invalide, par exemple, s’il se trouve sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

SevenZipArchive(string[], string)

Initialise une nouvelle instance de la classe Aspose.Zip.SevenZip.SevenZipArchive à partir d’une archive 7z multi-volume et compose une liste d’entrées qui peut être extraite de l’archive.

public SevenZipArchive(string[] parts, string password = null)

Paramètres

parts string[]

Chemins vers chaque segment de l’archive 7z multi-volume dans l’ordre respecté.

password string

Mot de passe optionnel pour le déchiffrement. Si les noms de fichiers sont chiffrés, il doit être présent.

Exemples

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Exceptions

ArgumentNullException

parts est nul.

ArgumentException

parts n’a pas d’entrées.

SecurityException

L’appelant n’a pas l’autorisation requise pour accéder.

ArgumentException

Le chemin vers un fichier est vide, ne contient que des espaces vides, ou contient des caractères invalides.

UnauthorizedAccessException

L’accès à un fichier est refusé.

PathTooLongException

Le chemin spécifié vers une partie, 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 au chemin contient un deux-points (:) au milieu de la chaîne.

Propriétés

Entries

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

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Valeur de propriété

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Paramètres de compression et de chiffrement utilisés pour les nouveaux éléments Aspose.Zip.SevenZip.SevenZipArchiveEntry ajoutés.

public SevenZipEntrySettings NewEntrySettings { get; }

Valeur de propriété

SevenZipEntrySettings

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 SevenZipArchive 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

SevenZipArchive

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

Exemples

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Exceptions

DirectoryNotFoundException

Le chemin vers directory est invalide, par exemple, s’il se trouve sur un lecteur non mappé.

SecurityException

L’appelant n’a pas l’autorisation 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 SevenZipArchive 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

SevenZipArchive

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

Exemples

Composer une archive 7z avec compression LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Créer une seule entrée dans l’archive.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings 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 le fichier est ouvert lors de l’enregistrement de l’archive.

newEntrySettings SevenZipEntrySettings

Paramètres de compression et de chiffrement utilisés pour l’élément Aspose.Zip.SevenZip.SevenZipArchiveEntry ajouté.

Retourne

SevenZipArchiveEntry

Instance d’entrée Seven Zip.

Exemples

Composer une archive avec des entrées chiffrées avec des mots de passe différents.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

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 sera 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, par exemple, s’il se trouve sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Créer une seule entrée dans l’archive.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings 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 SevenZipEntrySettings

Paramètres de compression et de chiffrement utilisés pour l’élément Aspose.Zip.SevenZip.SevenZipArchiveEntry ajouté.

fileInfo FileSystemInfo

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

Retourne

SevenZipArchiveEntry

Instance d’entrée SevenZip.

Exemples

Composer une archive avec une entrée chiffrée compressée en LZMA2.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

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, Stream, SevenZipEntrySettings)

Créer une seule entrée dans l’archive.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Paramètres

name string

Le nom de l’entrée.

source Stream

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

newEntrySettings SevenZipEntrySettings

Paramètres de compression et de chiffrement utilisés pour l’élément Aspose.Zip.SevenZip.SevenZipArchiveEntry ajouté.

Retourne

SevenZipArchiveEntry

Instance d’entrée Zip.

Exemples

Composer une archive 7z avec compression LZMA2 et chiffrement de toutes les entrées.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Créer une seule entrée dans l’archive.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings 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 le fichier est ouvert lors de l’enregistrement de l’archive.

newEntrySettings SevenZipEntrySettings

Paramètres de compression et de chiffrement utilisés pour l’élément Aspose.Zip.SevenZip.SevenZipArchiveEntry ajouté.

Retourne

SevenZipArchiveEntry

Instance d’entrée Zip.

Exemples

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

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 sera bloqué jusqu'à ce que l'archive soit enregistrée.

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas l’autorisation requise pour accéder.

ArgumentException

Le path est vide, ne contient que des espaces vides, 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 au path contient un deux-points (:) au milieu de la chaîne.

Dispose()

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

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

public void ExtractToDirectory(string destinationDirectory, string password = null)

Paramètres

destinationDirectory string

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

password string

Mot de passe optionnel pour le déchiffrement du contenu.

Exemples

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarques

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

password est utilisé uniquement pour le déchiffrement du contenu. Si les noms de fichiers sont chiffrés, fournissez le mot de passe dans le constructeur Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) ou Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

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 l’autorisation 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, ne contient que des espaces vides, 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 de réseau n’est pas connu.

InvalidDataException

L’archive est corrompue.

Save(Stream)

Sauvegarde l’archive 7z dans le flux fourni.

public void Save(Stream output)

Paramètres

output Stream

Flux de destination.

Exemples

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Remarques

output doit être accessible en recherche.

Exceptions

ArgumentException

output ne prend pas en charge la recherche.

ArgumentNullException

output est nul.

InvalidOperationException

L’encodeur a échoué à compresser les données.

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 (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Remarques

Il est possible de sauvegarder une archive au même chemin que celui d'où elle a été chargée. Cependant, cela n'est pas recommandé car cette approche utilise une copie dans un fichier temporaire.

Exceptions

ArgumentNullException

destinationFileName est nul.

SecurityException

L’appelant n’a pas l’autorisation requise pour accéder.

ArgumentException

Le destinationFileName est vide, ne contient que des espaces vides, 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 au destinationFileName contient un deux-points (:) au milieu de la chaîne.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Sauvegarde une archive multi-volume dans le répertoire de destination fourni.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Paramètres

destinationDirectory string

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

options SplitSevenZipArchiveSaveOptions

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

Exemples

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

Remarques

Cette méthode compose plusieurs fichiers (n) nommés filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Impossible de rendre une archive existante multi-volume.

Exceptions

InvalidOperationException

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

ArgumentNullException

destinationDirectory est nul.

SecurityException

L’appelant n’a pas l’autorisation requise pour accéder au répertoire.

ArgumentException

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

 Français