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
Implémente
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
sourceStream
n’est pas accessible en recherche.
sourceStream
est nul.
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
path
est nul.
L’appelant n’a pas l’autorisation requise pour accéder.
Le path
est vide, ne contient que des espaces vides, 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.
Le fichier au path
contient un deux-points (:) au milieu de la chaîne.
Le fichier est introuvable.
Le chemin spécifié est invalide, par exemple, s’il se trouve sur un lecteur non mappé.
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
parts
est nul.
parts
n’a pas d’entrées.
L’appelant n’a pas l’autorisation requise pour accéder.
Le chemin vers un fichier est vide, ne contient que des espaces vides, ou contient des caractères invalides.
L’accès à un fichier est refusé.
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.
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>
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é
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
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
Le chemin vers directory
est invalide, par exemple, s’il se trouve sur un lecteur non mappé.
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
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
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
fileInfo
est en lecture seule ou est un répertoire.
Le chemin spécifié est invalide, par exemple, s’il se trouve sur un lecteur non mappé.
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
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
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
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
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
path
est nul.
L’appelant n’a pas l’autorisation requise pour accéder.
Le path
est vide, ne contient que des espaces vides, 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.
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
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 Windows, les chemins doivent être inférieurs à 248 caractères et les noms de fichiers doivent être inférieurs à 260 caractères.
L’appelant n’a pas l’autorisation 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, 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 (:).
Le répertoire spécifié par le chemin est un fichier. -ou- Le nom de réseau n’est pas connu.
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
output
ne prend pas en charge la recherche.
output
est nul.
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
destinationFileName
est nul.
L’appelant n’a pas l’autorisation requise pour accéder.
Le destinationFileName
est vide, ne contient que des espaces vides, 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 Windows, les chemins doivent être inférieurs à 248 caractères, et les noms de fichiers doivent être inférieurs à 260 caractères.
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
Cette archive a été ouverte à partir d’une source existante.
destinationDirectory
est nul.
L’appelant n’a pas l’autorisation requise pour accéder au répertoire.
destinationDirectory
contient des caractères invalides tels que “, >, <, ou |.