Archive.Archive

Archive(ArchiveEntrySettings)

Inizializza una nuova istanza diArchive classe con impostazioni facoltative per le sue voci.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ParametroTipoDescrizione
newEntrySettingsArchiveEntrySettingsImpostazioni di compressione e crittografia utilizzate per i nuovi file aggiuntiArchiveEntry items. Se non specificato, verrebbe utilizzata la compressione Deflate più comune senza crittografia.

Esempi

L’esempio seguente mostra come comprimere un singolo file con le impostazioni predefinite.

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

Guarda anche


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Inizializza una nuova istanza diArchive classe e compone l’elenco delle voci può essere estratto dall’archivio.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParametroTipoDescrizione
sourceStreamStreamLa fonte dell’archivio.
loadOptionsArchiveLoadOptionsOpzioni per caricare l’archivio esistente con.
newEntrySettingsArchiveEntrySettingsImpostazioni di compressione e crittografia utilizzate per i nuovi file aggiuntiArchiveEntry items. Se non specificato, verrebbe utilizzata la compressione Deflate più comune senza crittografia.

Eccezioni

eccezionecondizione
ArgumentExceptionsourceStream non è ricercabile.
InvalidDataExceptionL’intestazione di crittografia per AES contraddice il metodo di compressione WinZip.

Osservazioni

Questo costruttore non decomprime alcuna voce. VedereOpen metodo per decomprimere.

Esempi

L’esempio seguente estrae un archivio crittografato, quindi decomprime la prima voce in aMemoryStream.

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

Guarda anche


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Inizializza una nuova istanza diArchive classe e compone l’elenco delle voci può essere estratto dall’archivio.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ParametroTipoDescrizione
pathStringIl percorso completo o relativo del file di archivio.
loadOptionsArchiveLoadOptionsOpzioni per caricare l’archivio esistente con.
newEntrySettingsArchiveEntrySettingsImpostazioni di compressione e crittografia utilizzate per i nuovi file aggiuntiArchiveEntry items. Se non specificato, verrebbe utilizzata la compressione Deflate più comune senza crittografia.

Eccezioni

eccezionecondizione
ArgumentNullExceptionpath è zero.
SecurityExceptionIl chiamante non dispone dell’autorizzazione richiesta per l’accesso.
ArgumentExceptionILpath è vuoto, contiene solo spazi bianchi o contiene caratteri non validi.
UnauthorizedAccessExceptionAccesso all’archiviopath è negato.
PathTooLongExceptionIl specificatopath, nome file o entrambi superano la lunghezza massima definita dal sistema. Ad esempio, su piattaforme basate su Windows, i percorsi devono contenere meno di 248 caratteri ei nomi file devono contenere meno di 260 caratteri.
NotSupportedExceptionFile apath contiene i due punti (:) al centro della stringa.

Osservazioni

Questo costruttore non decomprime alcuna voce. VedereOpen metodo per decomprimere.

Esempi

L’esempio seguente estrae un archivio crittografato, quindi decomprime la prima voce in aMemoryStream.

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

Guarda anche