Class Archive

Class Archive

Navne til: Aspose.Zip Sammensætning: Aspose.Zip.dll (25.5.0)

Denne klasse repræsenterer en zip arkivfil. Brug det til at komponere, udveksle eller opdatere zip filer.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

De arvede medlemmer

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Constructors

Archive(ArchiveEntrySettings)

Initialiserer en ny instans af Aspose.Zip.Archive-klassen med valgfrie indstillinger for dens indtægter.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.

Examples

Følgende eksempel viser, hvordan man komprimerer en enkelt fil med standardindstillinger.

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

Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Initialiserer en ny instans af Aspose.Zip.Archive-klassen og komponerer en indgangsliste, der kan uddrages fra arkivet.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

kilden til arkivet.

loadOptions ArchiveLoadOptions

Optioner til at oplade eksisterende arkiver med.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.

Examples

Følgende eksempel ekstrakter en krypteret arkiv, derefter dekomprimerer den første indgang til en .

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

Remarks

Denne konstruktør dekomprimerer ingen indtægter. se Aspose.Zip.ArchiveEntry.Open(System.String) metode til dekomprimering.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Encryption header for AES er i modsætning til WinZip kompression metode.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Initialiserer en ny instans af Aspose.Zip.Archive-klassen og komponerer en indgangsliste, der kan uddrages fra arkivet.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

Den fuldt kvalificerede eller den relative vej til arkiveret.

loadOptions ArchiveLoadOptions

Optioner til at oplade eksisterende arkiver med.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.

Examples

Følgende eksempel ekstrakter en krypteret arkiv, derefter dekomprimerer den første indgang til en .

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

Remarks

Denne konstruktør dekomprimerer ingen indtægter. se Aspose.Zip.ArchiveEntry.Open(System.String) metode til dekomprimering.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Den pågældende har ikke den nødvendige tilladelse til at få adgang.

ArgumentException

code class=“paramref”>path’ er tom, indeholder kun hvide rum, eller indeholder ulovlige tegn.

UnauthorizedAccessException

Tilgang til filen path’ er nægtet.

PathTooLongException

Den angivne path’, filnavn, eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal veje være mindre end 248 tegn, og filnavn skal være mindre end 260 tegn.

NotSupportedException

Filen på path’ indeholder en kolonne (:) i midten af ringen.

FileNotFoundException

Filen er ikke fundet.

DirectoryNotFoundException

Den angivne rute er ugyldig, f.eks. på en ubemappet drive.

IOException

Filen er allerede åben.

InvalidDataException

Filen er korrupt.

Archive(String og String[], Arkiver Optioner)

Initialiserer et nyt eksempel på Aspose.Zip.Archive-klassen fra multi-volum zip-arkivet og komponerer en indgangsliste, der kan udvundes fra arkivet.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Vejen til det sidste segment af multi-volum arkiv med det centrale katalog.

Normalt har dette segment *.zip udvidelse og mindre end andre.

segmentsInOrder string []

Vejer til hvert segment, men den sidste af multi-volum zip arkiv respekterer ordre.

Normalt kaldte de filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Optioner til at oplade eksisterende arkiver med.

Examples

Denne prøve udvider et arkiv af tre segmenter til en katalog.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Du kan ikke oplade ZIP-hovedstoffer, fordi de leverede filer er korrupte.

Properties

Entries

Få indtægter af Aspose.Zip.ArchiveEntry type, der udgør arkivet.

public ReadOnlyCollection<archiveentry> Entries { get; }

Ejendomsværdi

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.

public ArchiveEntrySettings NewEntrySettings { get; }

Ejendomsværdi

ArchiveEntrySettings

Methods

CreateEntries(Anmeldelse: Bool)

Tilføj til arkivet alle filer og kataloger gentagne gange i den angivne katalog.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

Direktorer til komprimering.

includeRootDirectory bool

Indikerer, om man skal inkludere selve roddokumentet eller ej.

Returns

Archive

arkiver med indtægter sammensat.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Vejen til direktory’ er ugyldig, f.eks. at være på en ubemappet disk.

SecurityException

Ringeren har ikke den nødvendige tilladelse til at få adgang til direktory'.

CreateEntries(String og Bool)

Tilføj til arkivet alle filer og kataloger gentagne gange i den angivne katalog.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

Direktorer til komprimering.

includeRootDirectory bool

Indikerer, om man skal inkludere selve roddokumentet eller ej.

Returns

Archive

arkiver med indtægter sammensat.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

Skab en enkelt indgang i arkivet.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Navnet på indgangen.

path string

Den fuldt kvalificerede filnavne eller den relative filnavne, der skal komprimeres.

openImmediately bool

Sannelig, hvis du åbner filen umiddelbart, ellers åbner du filen på arkivering.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.

Returns

ArchiveEntry

Zip indtægtsinstans.

Examples

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

Remarks

Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.

Hvis filen åbnes umiddelbart med parameteren, blokeres den, indtil arkivet er gemt.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Den pågældende har ikke den nødvendige tilladelse til at få adgang.

ArgumentException

code class=“paramref”>path’ er tom, indeholder kun hvide rum, eller indeholder ulovlige tegn.

UnauthorizedAccessException

Tilgang til filen path’ er nægtet.

PathTooLongException

Den angivne path’, filnavn, eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal veje være mindre end 248 tegn, og filnavn skal være mindre end 260 tegn.

NotSupportedException

Filen på path’ indeholder en kolonne (:) i midten af ringen.

CreateEntry(Strøm, Strøm, ArkivEntrySettings)

Skab en enkelt indgang i arkivet.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Navnet på indgangen.

source Stream

Indtægtsstrøm for indtægten.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.

Returns

ArchiveEntry

Zip indtægtsinstans.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Skab en enkelt indgang i arkivet.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Navnet på indgangen.

fileInfo FileInfo

Metadata af filen skal komprimeres.

openImmediately bool

Sannelig, hvis du åbner filen umiddelbart, ellers åbner du filen på arkivering.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.

Returns

ArchiveEntry

Zip indtægtsinstans.

Examples

Kombiner arkiver med indtægter krypteret med forskellige krypteringsmetoder og adgangskoder hver.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.

Hvis filen åbnes umiddelbart med parameteren, blokeres den, indtil arkivet er gemt.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Den angivne rute er ugyldig, f.eks. på en ubemappet drive.

IOException

Filen er allerede åben.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Skab en enkelt indgang i arkivet.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

Navnet på indgangen.

source Stream

Indtægtsstrøm for indtægten.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.

fileInfo FileSystemInfo

Metadata af filen eller mappen skal komprimeres.

Returns

ArchiveEntry

Zip indtægtsinstans.

Examples

Indtast arkiver med krypteret indtastning.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.

kan henvise til System.IO.DirectoryInfo, hvis indtægten er katalog.

Exceptions

InvalidOperationException

Både source’ og fileInfo’ er null eller source’ er null og fileInfo’ står for katalog.

CreateEntry(Strøm, Func<strøm>, Arkivindstillinger)

Skab en enkelt indgang i arkivet.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Navnet på indgangen.

streamProvider Func < Stream >

Metoden giver inputstrøm for indgangen.

newEntrySettings ArchiveEntrySettings

Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.

Returns

ArchiveEntry

Zip indtægtsinstans.

Examples

Indtast arkiver med krypteret indtastning.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Denne metode er for .NET Framework 4.0 og ovenfor og for .NET Standard 2.0 version.

DeleteEntry(ArchiveEntry)

Fjerner den første forekomst af den specifikke indtastning fra indtastningslisten.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Indtægten skal fjernes fra listen over indtægter.

Returns

Archive

Arkivet med indgangen er slettet.

Examples

Her er, hvordan du kan fjerne alle indtægter undtagen den sidste:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

Arkiverne er slettet.

DeleteEntry(Int)

Fjern indtægten fra indtægtslisten ved indeks.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Det nulbaserede indeks af indtægten skal fjernes.

Returns

Archive

Arkivet med indgangen er slettet.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Arkiverne er slettet.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Udfører applikationsdefinerede opgaver, der er forbundet med frigivelse, frigivelse eller genoprettelse af uadministrerede ressourcer.

public void Dispose()

Dispose(Bool)

Udfører applikationsdefinerede opgaver, der er forbundet med frigivelse, frigivelse eller genoprettelse af uadministrerede ressourcer.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Om de forvaltede ressourcer skal fjernes.

ExtractToDirectory(String)

Udveksler alle filer i arkivet til den leverede katalog.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Vejen til katalogen til at placere de udvundne filer i.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

Hvis katalogen ikke eksisterer, vil den blive oprettet.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Den angivne rute, filnavn eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal ruter være mindre end 248 tegn og filnavn skal være mindre end 260 tegn.

SecurityException

Opkalderen har ikke den nødvendige tilladelse til at få adgang til den eksisterende katalog.

NotSupportedException

Hvis direktoriet ikke eksisterer, indeholder vejen en kolon karakter (:) som ikke er en del af et diskmærke (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

Den katalog, der er angivet af vejen, er en fil. -eller- Netværksnavnet er ikke kendt.

InvalidDataException

Den forkerte adgangskode er blevet leveret. - eller - Arkiver er korrupt.

Save(Strøm, ArkivSaveOptions)

Sparer arkiver til den leverede strøm.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

Destinationstrøm.

saveOptions ArchiveSaveOptions

Optioner til arkivbesparelse.

Examples

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

Remarks

Det skal være skriftligt.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Arkiverne er slettet.

Save(String, ArchiveSaveOptions)

Sparer arkiver til den foreløbige fil, der leveres.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Hvis den angivne filnavne angiver en eksisterende fil, vil den blive oversat.

saveOptions ArchiveSaveOptions

Optioner til arkivbesparelse.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

Det er muligt at gemme et arkiv på samme vej, som det blev lastet fra. dog anbefales dette ikke, fordi denne tilgang bruger kopiering til en midlertidig fil.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Den pågældende har ikke den nødvendige tilladelse til at få adgang.

ArgumentException

Den destinationFileName’ er tom, indeholder kun hvide rum, eller indeholder ugyldige tegn.

UnauthorizedAccessException

Tilgang til filen destinationFileName’ er nægtet.

PathTooLongException

Den angivne destinationFileName’, filnavnet, eller begge overskrider systemdefinerede maksimale længde.For eksempel på Windows-baserede platforme skal ruter være mindre end 248 tegn, og filnavnet skal være mindre end 260 tegn.

NotSupportedException

Fil på destinationFileName’ indeholder en kolonne (:) i midten af ringen.

FileNotFoundException

Filen er ikke fundet.

DirectoryNotFoundException

Den angivne rute er ugyldig, f.eks. på en ubemappet drive.

IOException

Filen er allerede åben.

SaveSplit(String, SplitArchiveSaveOptions)

Sparer multi-volume-arkiv til den leverede destinationsdialog.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Vejen til katalogen, hvor arkivsegmenter skal oprettes.

options SplitArchiveSaveOptions

Alternativer til arkivbeskyttelse, herunder filnavne.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarks

Denne metode består af flere () filer filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Det er ikke muligt at lave eksisterende arkiver multi-volum.

Exceptions

InvalidOperationException

Dette arkiv blev åbnet fra den eksisterende kilde.

NotSupportedException

Denne arkiv er både komprimeret med XZ-metoden og krypteret.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Den pågældende har ikke den nødvendige tilladelse til at få adgang til katalogen.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Den angivne vej overstiger den systemdefinerede maksimale længde.

ObjectDisposedException

Arkiverne er slettet.

 Dansk