Class Archive

Class Archive

Namn på plats: Aspose.Zip Sammanfattning: Aspose.Zip.dll (25.5.0)

Denna klass representerar en zip arkiv fil. Använd den för att komponera, extrahera eller uppdatera zip-filer.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Arvsmedlemmar

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

Constructors

Archive(ArchiveEntrySettings)

Initialiserar en ny instans av Aspose.Zip.Archive-klassen med valfria inställningar för dess inlägg.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för nyligen lagt till Aspose.Zip.ArchiveEntry objekt.Om inte anges skulle den vanligaste Deflate-kompressionen utan kryptering användas.

Examples

Följande exempel visar hur man komprimerar en enda 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);
    }
}

Archive(Stream, ArkivLoadOptions, ArkivEntrySettings)

Initialiserar en ny instans av Aspose.Zip.Archive-klassen och utgör en inlistan som kan extraheras från arkivet.

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

Parameters

sourceStream Stream

Källan till arkivet.

loadOptions ArchiveLoadOptions

Alternativ för att ladda upp befintliga arkiv med.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för nyligen lagt till Aspose.Zip.ArchiveEntry objekt.Om inte anges skulle den vanligaste Deflate-kompressionen utan kryptering användas.

Examples

Följande exempel extraherar en krypterad arkiv, sedan dekomprimerar den första entrén till 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

Denna konstruktör dekomprimerar inte någon inmatning. se Aspose.Zip.ArchiveEntry.Open(System.String) metod för dekomprimering.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Kryptering header för AES strider mot WinZip kompression metod.

Archive(strängar, ArchiveLoadOptions, ArchiveEntrySettings)

Initialiserar en ny instans av Aspose.Zip.Archive-klassen och utgör en inlistan som kan extraheras från arkivet.

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

Parameters

path string

Den fullt kvalificerade eller den relativa vägen till arkivfilen.

loadOptions ArchiveLoadOptions

Alternativ för att ladda upp befintliga arkiv med.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för nyligen lagt till Aspose.Zip.ArchiveEntry objekt.Om inte anges skulle den vanligaste Deflate-kompressionen utan kryptering användas.

Examples

Följande exempel extraherar en krypterad arkiv, sedan dekomprimerar den första entrén till 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

Denna konstruktör dekomprimerar inte någon inmatning. se Aspose.Zip.ArchiveEntry.Open(System.String) metod för dekomprimering.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Sökanden har inte behörig tillstånd att komma åt.

ArgumentException

path’ är tom, innehåller endast vita utrymmen, eller innehåller olagliga tecken.

UnauthorizedAccessException

Tillgång till filen path" vägras.

PathTooLongException

Den angivna path’, filnamn, eller båda överstiger den systemdefinierade maximala längden. Till exempel på Windows-baserade plattformar måste vägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.

NotSupportedException

Filen på path’ innehåller en kolumn (:) i mitten av raden.

FileNotFoundException

Filen hittades inte.

DirectoryNotFoundException

Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.

IOException

Filen är redan öppen.

InvalidDataException

Filen är korrupt.

Archive(String och String[ ], ArchiveLoadOptions)

Initialiserar en ny instans av Aspose.Zip.Archive-klassen från multi-volym zip-arkivet och utgör en inlistan som kan extraheras från arkivet.

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

Parameters

mainSegment string

Vägen till det sista segmentet av flervolymarkiv med centrala katalogen.

Vanligtvis har denna segment *.zip förlängning och mindre än andra.

segmentsInOrder string [ ]

Vägar till varje segment men den sista av multi-volym zip arkiv respekterar order.

Vanligtvis namngav de filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Alternativ för att ladda upp befintliga arkiv med.

Examples

Detta prov extraherar ett arkiv i tre segment till en katalog.

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

Exceptions

EndOfStreamException

Du kan inte ladda ZIP-huvuden eftersom de angivna filerna är korrupta.

Properties

Entries

Få inmatningar av Aspose.Zip.ArchiveEntry-typ som utgör arkivet.

public ReadOnlyCollection<archiveentry> Entries { get; }

Fastighetsvärde

ReadOnlyCollection ochlt; ArchiveEntry >

NewEntrySettings

Komprimering och kryptering inställningar som används för nyligen lagt till Aspose.Zip.ArchiveEntry objekt.

public ArchiveEntrySettings NewEntrySettings { get; }

Fastighetsvärde

ArchiveEntrySettings

Methods

CreateEntries(Föregående inlägg: Bool)

Lägg till i arkivet alla filer och kataloger återkommande i den angivna katalogen.

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

Parameters

directory DirectoryInfo

katalog för komprimering.

includeRootDirectory bool

Anger om du ska inkludera rötdiagrammet själv eller inte.

Returns

Archive

Arkiv med ingångar komposterade.

Examples

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

Exceptions

DirectoryNotFoundException

Vägen till direktory’ är ogiltig, till exempel på en icke-mappad disk.

SecurityException

Ringaren har inte nödvändig tillstånd att komma åt direktory".

CreateEntries(String och bool)

Lägg till i arkivet alla filer och kataloger återkommande i den angivna katalogen.

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

Parameters

sourceDirectory string

katalog för komprimering.

includeRootDirectory bool

Anger om du ska inkludera rötdiagrammet själv eller inte.

Returns

Archive

Arkiv med ingångar komposterade.

Examples

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

CreateEntry(sträng, sträng, bool, ArchiveEntrySettings)

Skapa en enda inmatning inom arkivet.

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

Parameters

name string

Namnet på ingången.

path string

Den fullt kvalificerade namnet på den nya filen eller den relativa filnamnet som ska komprimeras.

openImmediately bool

Det är sant, om du öppnar filen omedelbart, annars öppnar du filen på arkivspara.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för att lägga till Aspose.Zip.ArchiveEntry objekt.

Returns

ArchiveEntry

Zip inträde instans.

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

Innehållsnamnet anges endast inom parameter. filnamnet som anges i parameter påverkar inte innehållsnamnet.

Om filen öppnas omedelbart med parameter blockeras den tills arkivet sparas.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Sökanden har inte behörig tillstånd att komma åt.

ArgumentException

path’ är tom, innehåller endast vita utrymmen, eller innehåller olagliga tecken.

UnauthorizedAccessException

Tillgång till filen path" vägras.

PathTooLongException

Den angivna path’, filnamn, eller båda överstiger den systemdefinierade maximala längden. Till exempel på Windows-baserade plattformar måste vägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.

NotSupportedException

Filen på path’ innehåller en kolumn (:) i mitten av raden.

CreateEntry(sträng, ström, ArchiveEntrySettings)

Skapa en enda inmatning inom arkivet.

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

Parameters

name string

Namnet på ingången.

source Stream

Inträdesflöde för ingången.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för att lägga till Aspose.Zip.ArchiveEntry objekt.

Returns

ArchiveEntry

Zip inträde instans.

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(sträng, FileInfo, bool, ArchiveEntrySettings)

Skapa en enda inmatning inom arkivet.

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

Parameters

name string

Namnet på ingången.

fileInfo FileInfo

Metadata av filen ska komprimeras.

openImmediately bool

Det är sant, om du öppnar filen omedelbart, annars öppnar du filen på arkivspara.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för att lägga till Aspose.Zip.ArchiveEntry objekt.

Returns

ArchiveEntry

Zip inträde instans.

Examples

Skapa arkiv med inmatningar krypterade med olika krypteringsmetoder och lösenord var och en.

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

Innehållsnamnet anges endast inom parameter. filnamnet som anges i parameter påverkar inte innehållsnamnet.

Om filen öppnas omedelbart med parameter blockeras den tills arkivet sparas.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.

IOException

Filen är redan öppen.

CreateEntry(sträng, Stream, ArchiveEntrySettings, FileSystemInfo)

Skapa en enda inmatning inom arkivet.

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

Parameters

name string

Namnet på ingången.

source Stream

Inträdesflöde för ingången.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för att lägga till Aspose.Zip.ArchiveEntry objekt.

fileInfo FileSystemInfo

Metadata av filen eller mappen ska komprimeras.

Returns

ArchiveEntry

Zip inträde instans.

Examples

Skapa arkiv med krypterad inmatning.

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

Innehållsnamnet anges endast inom parameter. filnamnet som anges i parameter påverkar inte innehållsnamnet.

kan hänvisa till System.IO.DirectoryInfo om entréen är katalog.

Exceptions

InvalidOperationException

Både source’ och fileInfo’ är noll eller source’ är noll och fileInfo’ står för katalog.

CreateEntry(Sträng, Funktion<ström>, ArkivEntrySettings)

Skapa en enda inmatning inom arkivet.

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

Parameters

name string

Namnet på ingången.

streamProvider Func ochlt; Stream >

Metoden som ger inputström för ingången.

newEntrySettings ArchiveEntrySettings

Komprimering och kryptering inställningar som används för att lägga till Aspose.Zip.ArchiveEntry objekt.

Returns

ArchiveEntry

Zip inträde instans.

Examples

Skapa arkiv med krypterad inmatning.

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

Denna metod är för .NET Framework 4.0 och ovan och för .NET Standard 2.0 version.

DeleteEntry(ArchiveEntry)

Ta bort den första förekomsten av den specifika inmatningen från inmatningslistan.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Inträde att ta bort från listan inträde.

Returns

Archive

Arkivet med ingången raderas.

Examples

Här är hur du kan ta bort alla poster utom den sista:

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

Arkivet är upplöst.

DeleteEntry(int)

Ta bort inmatningen från inmatningslistan per index.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Nollbaserad index för inmatning att ta bort.

Returns

Archive

Arkivet med ingången raderas.

Examples

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

Exceptions

ObjectDisposedException

Arkiv är upplyst.

ArgumentOutOfRangeException

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

Dispose()

Utför tillämpningsdefinierade uppgifter som är förknippade med frigöring, frigöring eller återanvändning av okontrollerade resurser.

public void Dispose()

Dispose(Bool)

Utför tillämpningsdefinierade uppgifter som är förknippade med frigöring, frigöring eller återanvändning av okontrollerade resurser.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Oavsett om de förvaltade resurserna ska utplånas.

ExtractToDirectory(Sträng)

Extraherar alla filer i arkivet till den angivna katalogen.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Vägen till katalogen för att placera de extraherade filerna i.

Examples

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

Remarks

Om katalogen inte existerar kommer den att skapas.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Den angivna vägen, filnamnet eller båda överstiger den systemdefinierade maximala längden. Till exempel på Windows-baserade plattformar måste vägarna vara mindre än 248 tecken och filnamnen måste vara mindre än 260 tecken.

SecurityException

Sökanden har inte behörig behörighet att få tillgång till det befintliga katalogen.

NotSupportedException

Om katalogen inte existerar, innehåller vägen en kolumnkaraktär (:) som inte är en del av en drivetikett (“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 som anges av vägen är en fil. -eller- Nätverksnamnet är inte känt.

InvalidDataException

Fel lösenord har tillhandahållits. - eller - Arkiv är korrupt.

Save(Stream, ArkivSaveOptions)

Spara arkiv till den tillhandahållna strömmen.

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

Parameters

outputStream Stream

Destination strömmar.

saveOptions ArchiveSaveOptions

Alternativ för arkivbesparing.

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

Måste vara skribar.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Arkivet är upplöst.

Save(String, ArkivSaveOptions)

Spara arkiv till den angivna destinationsfilen.

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

Parameters

destinationFileName string

Om den angivna filnamnet pekar på en befintlig fil, kommer den att översättas.

saveOptions ArchiveSaveOptions

Alternativ för arkivbesparing.

Examples

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

Remarks

Det är möjligt att spara ett arkiv på samma väg som det laddades från. Detta rekommenderas dock inte eftersom denna metod använder kopiering till en tillfällig fil.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Sökanden har inte behörig tillstånd att komma åt.

ArgumentException

destinationFileName’ är tom, innehåller endast vita utrymmen, eller innehåller ogiltiga tecken.

UnauthorizedAccessException

Tillgång till filen destinationFileName’ vägras.

PathTooLongException

Den angivna destinationFileName’, filnamn, eller båda överstiger den systemdefinierade maximala längden.Till exempel på Windows-baserade plattformar måste vägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.

NotSupportedException

Filen i destinationFileName’ innehåller en kolumn (:) i mitten av raden.

FileNotFoundException

Filen hittades inte.

DirectoryNotFoundException

Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.

IOException

Filen är redan öppen.

SaveSplit(String, SplitArchiveSaveOptions)

Spara multi-volym arkiv till avsedd katalog.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Vägen till katalogen där arkivsegment ska skapas.

options SplitArchiveSaveOptions

Alternativ för arkiv lagring, inklusive filnamn.

Examples

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

Remarks

Denna metod består av flera () filer filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Det går inte att göra befintliga arkiv multi-volym.

Exceptions

InvalidOperationException

Detta arkiv har öppnats från den befintliga källan.

NotSupportedException

Detta arkiv är både komprimerat med XZ-metoden och krypterat.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Ringaren har inte tillståndet att få tillgång till katalogen.

ArgumentException

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

PathTooLongException

Den angivna vägen överstiger den systemdefinierade maximala längden.

ObjectDisposedException

Arkivet är upplöst.

 Svenska