Archive.Archive

Archive(ArchiveEntrySettings)

Initierar en ny instans avArchive klass med valfria inställningar för dess poster.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeskrivning
newEntrySettingsArchiveEntrySettingsKomprimerings- och krypteringsinställningar som används för nyligen tillagdaArchiveEntry items. Om det inte anges, skulle den vanligaste Deflate-komprimeringen utan kryptering användas.

Exempel

Följande exempel visar hur man komprimerar en enskild fil med standardinställningar.

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

Se även


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initierar en ny instans avArchive klass och komponerar poster lista kan extraheras från arkivet.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeskrivning
sourceStreamStreamKällan till arkivet.
loadOptionsArchiveLoadOptionsAlternativ att ladda befintligt arkiv med.
newEntrySettingsArchiveEntrySettingsKomprimerings- och krypteringsinställningar som används för nyligen tillagdaArchiveEntry items. Om det inte anges, skulle den vanligaste Deflate-komprimeringen utan kryptering användas.

Undantag

undantagskick
ArgumentExceptionsourceStream är inte sökbar.
InvalidDataExceptionKrypteringshuvudet för AES motsäger WinZip-komprimeringsmetoden.

Anmärkningar

Denna konstruktor dekomprimerar inte någon post. SerOpen metod för dekomprimering.

Exempel

Följande exempel extraherar ett krypterat arkiv och dekomprimerar sedan första posten till enMemoryStream.

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

Se även


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initierar en ny instans avArchive klass och komponerar poster lista kan extraheras från arkivet.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeskrivning
pathStringDen fullt kvalificerade eller den relativa sökvägen till arkivfilen.
loadOptionsArchiveLoadOptionsAlternativ att ladda befintligt arkiv med.
newEntrySettingsArchiveEntrySettingsKomprimerings- och krypteringsinställningar som används för nyligen tillagdaArchiveEntry items. Om det inte anges, skulle den vanligaste Deflate-komprimeringen utan kryptering användas.

Undantag

undantagskick
ArgumentNullExceptionpath är inget.
SecurityExceptionDen som ringer har inte den behörighet som krävs för att få åtkomst.
ArgumentExceptionDepath är tom, innehåller bara blanksteg eller innehåller ogiltiga tecken.
UnauthorizedAccessExceptionTillgång till filpath är nekad.
PathTooLongExceptionDen angivnapath, filnamn eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
NotSupportedExceptionArkivera klpath innehåller ett kolon (:) i mitten av strängen.

Anmärkningar

Denna konstruktor dekomprimerar inte någon post. SerOpen metod för dekomprimering.

Exempel

Följande exempel extraherar ett krypterat arkiv och dekomprimerar sedan första posten till enMemoryStream.

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

Se även