Class Archive

Class Archive

nazivni prostor: Aspose.Zip Sastav: Aspose.Zip.dll (25.5.0)

Ova klasa predstavlja zip arhiv datoteku. upotrijebite ga za sastavljanje, ekstrakciju ili ažuriranje zip arhiva.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

naslijeđeni članovi

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

Constructors

Archive(ArchiveEntrySettings)

Inicijalizira novu primjenu Aspose.Zip.Arhiv razreda s opcionalnim postavkama za njegove uloge.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za novo dodane Aspose.Zip.ArchiveEntry predmete.Ako nije navedeno, najčešća Deflate kompresija bez šifriranja bi se koristila.

Examples

Sljedeći primjer pokazuje kako komprimirati pojedinačnu datoteku s podrazumevanim postavkama.

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, ArhivLoadOptions, ArhivEntrySettings)

Inicijalizira novu primjenu Aspose.Zip.Arhiv razreda i sastavlja popis ulazaka koji se može izvući iz arhiva.

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

Parameters

sourceStream Stream

Izvori iz arhiva.

loadOptions ArchiveLoadOptions

Opcije za preuzimanje postojećeg arhiva s.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za novo dodane Aspose.Zip.ArchiveEntry predmete.Ako nije navedeno, najčešća Deflate kompresija bez šifriranja bi se koristila.

Examples

Sljedeći primjer izvlači šifrirani arhiv, a zatim dekompresira prvi ulaz u .

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

Ovaj konstruktor ne dekompresira nijedan ulaz. pogledajte Aspose.Zip.ArchiveEntry.Open(System.String) način za dekompresiranje.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Naslov za šifriranje za AES je u suprotnosti s WinZip kompresijskom metodom.

Archive(String, ArhivLoadOptions, ArhivEntrySettings)

Inicijalizira novu primjenu Aspose.Zip.Arhiv razreda i sastavlja popis ulazaka koji se može izvući iz arhiva.

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

Parameters

path string

Potpuno kvalificirani ili relativni put do arhivskog datoteke.

loadOptions ArchiveLoadOptions

Opcije za preuzimanje postojećeg arhiva s.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za novo dodane Aspose.Zip.ArchiveEntry predmete.Ako nije navedeno, najčešća Deflate kompresija bez šifriranja bi se koristila.

Examples

Sljedeći primjer izvlači šifrirani arhiv, a zatim dekompresira prvi ulaz u .

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

Ovaj konstruktor ne dekompresira nijedan ulaz. pogledajte Aspose.Zip.ArchiveEntry.Open(System.String) način za dekompresiranje.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Pozivač nema potrebnu dozvolu za pristup.

ArgumentException

path’ je prazan, sadrži samo bijele prostore, ili sadrži nevažeće znakove.

UnauthorizedAccessException

Pristup datoteci path" je odbijen.

PathTooLongException

Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.

NotSupportedException

File na path’ sadrži kolona (:) u sredini trake.

FileNotFoundException

Dosje nije pronađeno.

DirectoryNotFoundException

Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.

IOException

Dosje je već otvoreno.

InvalidDataException

Dosje je korumpirano.

Archive(String, String i String[], Tagovi ArchiveLoadOptions)

Inicijalizira novu primjenu Aspose.Zip.Arhiv razreda iz multi-volume zip arhiva i čini popis ulazaka koji se može izvući iz arhiva.

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

Parameters

mainSegment string

Put do posljednjeg segmenta multi-volum arhiva s središnjim direktorijem.

Obično ovaj segment ima *.zip proširenje i manji od ostalih.

segmentsInOrder string []

Putovi do svakog segmenta, ali posljednji multi-volum zip arhiv poštuje redoslijed.

Obično su nazvali filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opcije za preuzimanje postojećeg arhiva s.

Examples

Ovaj uzorak izvlači u direktorije arhiv od tri segmenta.

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

Exceptions

EndOfStreamException

Ne možete preuzeti ZIP naslovnice jer pružene datoteke su korumpirane.

Properties

Entries

Dobiva ulaznice tipa Aspose.Zip.ArchiveEntry koji čine arhiv.

public ReadOnlyCollection<archiveentry> Entries { get; }

Vrijednost nekretnina

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Sastav kompresije i šifriranja koji se koriste za novo dodane Aspose.Zip.ArchiveEntry predmete.

public ArchiveEntrySettings NewEntrySettings { get; }

Vrijednost nekretnina

ArchiveEntrySettings

Methods

CreateEntries(Sljedeći članakInfo, bool)

Dodajte u arhiv sve datoteke i zapise ponavljajući se u određenom zapisu.

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

Parameters

directory DirectoryInfo

Direktorat za kompresije.

includeRootDirectory bool

To ukazuje na to treba li uključiti sam korijenski katalog ili ne.

Returns

Archive

Arhiva s upisima sastavljena.

Examples

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

Exceptions

DirectoryNotFoundException

Put do directory’ je nevažeći, na primjer, biti na nemapiranom disku.

SecurityException

Pozivač nema potrebnu dozvolu za pristup directory".

CreateEntries(Sljedeći Članak Bool)

Dodajte u arhiv sve datoteke i zapise ponavljajući se u određenom zapisu.

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

Parameters

sourceDirectory string

Direktorat za kompresije.

includeRootDirectory bool

To ukazuje na to treba li uključiti sam korijenski katalog ili ne.

Returns

Archive

Arhiva s upisima sastavljena.

Examples

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

CreateEntry(string, string, bool, arhivEntrySettings)

Stvorite jedinstvenu ulaznicu u arhivu.

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

Parameters

name string

Naziv ulaznice.

path string

Potpuno kvalificirano ime novog datoteke ili relativno ime datoteke koje će se komprimirati.

openImmediately bool

Istina, ako odmah otvorite datoteku, inače otvorite datoteku na arhivskom skladištenju.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za dodavanje Aspose.Zip.ArchiveEntry elementa.

Returns

ArchiveEntry

Zip ulazna instanca.

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

Naziv ulaza je postavljen isključivo unutar parametara. ime datoteke navedeno u parametru ne utječe na ime ulaza.

Ako se datoteka odmah otvori s parametrom, blokira se sve dok se arhiv ne sačuvaju.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Pozivač nema potrebnu dozvolu za pristup.

ArgumentException

path’ je prazan, sadrži samo bijele prostore, ili sadrži nevažeće znakove.

UnauthorizedAccessException

Pristup datoteci path" je odbijen.

PathTooLongException

Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.

NotSupportedException

File na path’ sadrži kolona (:) u sredini trake.

CreateEntry(String, Stream i ArchiveEntrySettings)

Stvorite jedinstvenu ulaznicu u arhivu.

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

Parameters

name string

Naziv ulaznice.

source Stream

Ulaznice za ulaz.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za dodavanje Aspose.Zip.ArchiveEntry elementa.

Returns

ArchiveEntry

Zip ulazna instanca.

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)

Stvorite jedinstvenu ulaznicu u arhivu.

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

Parameters

name string

Naziv ulaznice.

fileInfo FileInfo

Metadata datoteke treba komprimirati.

openImmediately bool

Istina, ako odmah otvorite datoteku, inače otvorite datoteku na arhivskom skladištenju.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za dodavanje Aspose.Zip.ArchiveEntry elementa.

Returns

ArchiveEntry

Zip ulazna instanca.

Examples

Sastavite arhiv s upisima šifriranim različitim metodama šifriranja i lozinkama svaki.

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

Naziv ulaza je postavljen isključivo unutar parametara. ime datoteke navedeno u parametru ne utječe na ime ulaza.

Ako se datoteka odmah otvori s parametrom, blokira se sve dok se arhiv ne sačuvaju.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.

IOException

Dosje je već otvoreno.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Stvorite jedinstvenu ulaznicu u arhivu.

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

Parameters

name string

Naziv ulaznice.

source Stream

Ulaznice za ulaz.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za dodavanje Aspose.Zip.ArchiveEntry elementa.

fileInfo FileSystemInfo

Metapodatke datoteke ili mape koje treba komprimirati.

Returns

ArchiveEntry

Zip ulazna instanca.

Examples

Sastavite arhiv s šifriranim ulazom.

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

Naziv ulaza je postavljen isključivo unutar parametara. ime datoteke navedeno u parametru ne utječe na ime ulaza.

može se uputiti na System.IO.DirectoryInfo ako je ulaz direktorija.

Exceptions

InvalidOperationException

Obojica source’ i fileInfo’ su nula ili source’ je nula i fileInfo’ stoji za direktorije.

CreateEntry(Slijedeći članakFunc, Tagovi ArchiveEntrySettings)

Stvorite jedinstvenu ulaznicu u arhivu.

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

Parameters

name string

Naziv ulaznice.

streamProvider Func < Stream >

Metoda koja pruža ulazni tok za ulaz.

newEntrySettings ArchiveEntrySettings

Sastav kompresije i šifriranja koji se koriste za dodavanje Aspose.Zip.ArchiveEntry elementa.

Returns

ArchiveEntry

Zip ulazna instanca.

Examples

Sastavite arhiv s šifriranim ulazom.

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

Ova metoda je za .NET Framework 4.0 i iznad i za .NET Standard 2.0 verziju.

DeleteEntry(ArchiveEntry)

Ukloni prvu pojavu određenog ulaza s popisa ulaza.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Ulazak treba ukloniti s popisa ulazaka.

Returns

Archive

Slijedeći članakArhiva s ulazom uklonjena

Examples

Evo kako možete ukloniti sve prijave osim posljednjeg:

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

Arhiva je ispuštena.

DeleteEntry(int)

Uklanjanje ulaznice s popisa ulaznica po indeksu.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Indeks na temelju nule ulaza treba ukloniti.

Returns

Archive

Slijedeći članakArhiva s ulazom uklonjena

Examples

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

Exceptions

ObjectDisposedException

Arhiva je ispuštena.

ArgumentOutOfRangeException

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

Dispose()

On obavlja zadatke definirane po aplikaciji povezane s oslobađanjem, oslobađanjem ili ponovnim oslobađanjem nekontroliranih resursa.

public void Dispose()

Dispose(Bolić)

On obavlja zadatke definirane po aplikaciji povezane s oslobađanjem, oslobađanjem ili ponovnim oslobađanjem nekontroliranih resursa.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Treba li iskoristiti upravljane resurse.

ExtractToDirectory(String)

Izvadite sve datoteke u arhivu u pruženi direktorij.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Put do direktora za stavljanje izvedenih datoteka u.

Examples

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

Remarks

Ako direktorija ne postoji, stvorit će se.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.

SecurityException

Pozivač nema potrebnu dozvolu za pristup postojećem adresaru.

NotSupportedException

Ako direktorija ne postoji, put sadrži znak kolona (:) koji nije dio oznake pogona (“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

Direktorija određena putem je datoteka. -ili- Ime mreže nije poznato.

InvalidDataException

Pogrešna lozinka je isporučena. - ili - Arhiv je korumpiran.

Save(Slijedeći članakArhivaSaveOptions)

Sačuvajte arhiv na pruženi tok.

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

Parameters

outputStream Stream

Odredište za tok.

saveOptions ArchiveSaveOptions

Opcije za skladištenje arhiva.

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

Mora biti pismen.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Arhiva je ispuštena.

Save(Sljedeći članakArhivaSaveOptions)

Sačuvajte arhiv za dostavljenu dosjeu odredišta.

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

Parameters

destinationFileName string

Ako određeno ime datoteke ukazuje na postojeće datoteke, to će biti prepisano.

saveOptions ArchiveSaveOptions

Opcije za skladištenje arhiva.

Examples

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

Remarks

Moguće je sačuvati arhiv na istom putu kao što je preuzeta. međutim, to se ne preporučuje jer ovaj pristup koristi kopiranje na privremeni datoteku.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Pozivač nema potrebnu dozvolu za pristup.

ArgumentException

destinationFileName’ je prazan, sadrži samo bijele prostore ili sadrži nevažeće znakove.

UnauthorizedAccessException

Pristup datoteci destinationFileName’ je odbijen.

PathTooLongException

Na primjer, na platformama s Windows-om, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.

NotSupportedException

File u destinationFileName’ sadrži kolona (:) u sredini trake.

FileNotFoundException

Dosje nije pronađeno.

DirectoryNotFoundException

Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.

IOException

Dosje je već otvoreno.

SaveSplit(String, SplitArchiveSaveOptions)

Uštedi multi-volume arhiv za dodijeljenu adresar za odredište.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Put do direktora gdje će biti stvoreni arhivski segmenti.

options SplitArchiveSaveOptions

Opcije za skladištenje arhiva, uključujući ime datoteke.

Examples

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

Remarks

Ova metoda sastoji se od nekoliko () datoteka filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Ne može se napraviti postojeći arhiv multi-volum.

Exceptions

InvalidOperationException

Ovaj arhiv je otvoren iz postojećeg izvora.

NotSupportedException

Ovaj arhiv je komprimiran XZ metodom i šifriran.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Pozivač nema potrebnu dozvolu za pristup adresi.

ArgumentException

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

PathTooLongException

Navedena staza prelazi maksimalnu duljinu koju je definirao sustav.

ObjectDisposedException

Arhiva je ispuštena.

 Hrvatski