Archive.Archive

Archive(ArchiveEntrySettings)

Initialise une nouvelle instance duArchive classe avec des paramètres facultatifs pour ses entrées.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParamètreTaperLa description
newEntrySettingsArchiveEntrySettingsParamètres de compression et de cryptage utilisés pour les nouveauxArchiveEntry items. S’il n’est pas spécifié, la compression Deflate la plus courante sans chiffrement 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);
    }
}

Voir également


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialise une nouvelle instance duArchive la liste des entrées de classe et de composition peut être extraite de l’archive.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParamètreTaperLa description
sourceStreamStreamLa source des archives.
loadOptionsArchiveLoadOptionsOptions pour charger l’archive existante avec.
newEntrySettingsArchiveEntrySettingsParamètres de compression et de cryptage utilisés pour les nouveauxArchiveEntry items. S’il n’est pas spécifié, la compression Deflate la plus courante sans chiffrement sera utilisée.

Exceptions

exceptioncondition
ArgumentExceptionsourceStream n’est pas recherchable.
InvalidDataExceptionL’en-tête de chiffrement pour AES contredit la méthode de compression WinZip.

Remarques

Ce constructeur ne décompresse aucune entrée. VoirOpen méthode de décompression.

Exemples

L’exemple suivant extrait une archive chiffrée, puis décompresse la première entrée dans unMemoryStream.

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);
    }
}

Voir également


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initialise une nouvelle instance duArchive la liste des entrées de classe et de composition peut être extraite de l’archive.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParamètreTaperLa description
pathStringChemin d’accès complet ou relatif au fichier d’archive.
loadOptionsArchiveLoadOptionsOptions pour charger l’archive existante avec.
newEntrySettingsArchiveEntrySettingsParamètres de compression et de cryptage utilisés pour les nouveauxArchiveEntry items. S’il n’est pas spécifié, la compression Deflate la plus courante sans chiffrement sera utilisée.

Exceptions

exceptioncondition
ArgumentNullExceptionpath est nul.
SecurityExceptionL’appelant n’a pas l’autorisation requise pour accéder.
ArgumentExceptionLepath est vide, ne contient que des espaces blancs ou contient des caractères non valides.
UnauthorizedAccessExceptionAccéder au dossierpath est refusé.
PathTooLongExceptionLe spécifiépath, nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plates-formes Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers doivent comporter moins de 260 caractères.
NotSupportedExceptionFichier àpath contient deux-points (:) au milieu de la chaîne.

Remarques

Ce constructeur ne décompresse aucune entrée. VoirOpen méthode de décompression.

Exemples

L’exemple suivant extrait une archive chiffrée, puis décompresse la première entrée dans unMemoryStream.

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);
    }
}

Voir également