Archive.Archive

Archive(ArchiveEntrySettings)

Initialiseert een nieuw exemplaar van hetArchive klasse met optionele instellingen voor zijn ingangen.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParameterTypeBeschrijving
newEntrySettingsArchiveEntrySettingsCompressie- en coderingsinstellingen gebruikt voor nieuw toegevoegdeArchiveEntry items. Indien niet gespecificeerd, zou de meest gebruikelijke Deflate-compressie zonder codering worden gebruikt.

Voorbeelden

Het volgende voorbeeld laat zien hoe een enkel bestand met standaardinstellingen kan worden gecomprimeerd.

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

Zie ook


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialiseert een nieuw exemplaar van hetArchive klasse en lijst met items voor samenstellen kunnen uit het archief worden geëxtraheerd.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypeBeschrijving
sourceStreamStreamDe bron van het archief.
loadOptionsArchiveLoadOptionsOpties om bestaand archief mee te laden.
newEntrySettingsArchiveEntrySettingsCompressie- en coderingsinstellingen gebruikt voor nieuw toegevoegdeArchiveEntry items. Indien niet gespecificeerd, zou de meest gebruikelijke Deflate-compressie zonder codering worden gebruikt.

Uitzonderingen

uitzonderingvoorwaarde
ArgumentExceptionsourceStream is niet zoek.
InvalidDataExceptionVersleutelingsheader voor AES is in tegenspraak met de WinZip-compressiemethode.

Opmerkingen

Deze constructor decomprimeert geen enkel item. ZienOpen methode voor decomprimeren.

Voorbeelden

Het volgende voorbeeld extraheert een versleuteld archief en decomprimeert vervolgens het eerste item in eenMemoryStream.

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

Zie ook


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initialiseert een nieuw exemplaar van hetArchive klasse en lijst met items voor samenstellen kunnen uit het archief worden geëxtraheerd.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypeBeschrijving
pathStringHet volledig gekwalificeerde of relatieve pad naar het archiefbestand.
loadOptionsArchiveLoadOptionsOpties om bestaand archief mee te laden.
newEntrySettingsArchiveEntrySettingsCompressie- en coderingsinstellingen gebruikt voor nieuw toegevoegdeArchiveEntry items. Indien niet gespecificeerd, zou de meest gebruikelijke Deflate-compressie zonder codering worden gebruikt.

Uitzonderingen

uitzonderingvoorwaarde
ArgumentNullExceptionpath is niets.
SecurityExceptionDe beller heeft niet de vereiste toegangsrechten.
ArgumentExceptionDepath is leeg, bevat alleen spaties of bevat ongeldige tekens.
UnauthorizedAccessExceptionToegang tot dossierpath wordt ontkend.
PathTooLongExceptionDe opgegevenpath, bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximale lengte. Op Windows-gebaseerde platforms moeten paden bijvoorbeeld uit minder dan 248 tekens bestaan en moeten bestandsnamen uit minder dan 260 tekens bestaan.
NotSupportedExceptionDossier bijpath bevat een dubbele punt (:) in het midden van de tekenreeks.

Opmerkingen

Deze constructor decomprimeert geen enkel item. ZienOpen methode voor decomprimeren.

Voorbeelden

Het volgende voorbeeld extraheert een versleuteld archief en decomprimeert vervolgens het eerste item in eenMemoryStream.

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

Zie ook