Class Archive

Class Archive

Numele spaţiului: Aspose.Zip Asamblare: Aspose.Zip.dll (25.5.0)

Această clasă reprezintă un fișier de arhivă zip. Utilizați-l pentru a compune, extrage sau actualiza arhivele zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Membrii moștenitori

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

Constructors

Archive(ArchiveEntrySettings)

Inițializează o nouă instanță a clasei Aspose.Zip.Archive cu setări opționale pentru intrările sale.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.ArchiveEntry.Dacă nu este specificat, va fi utilizată cea mai frecventă compresie Deflate fără criptare.

Examples

Următorul exemplu arată cum să compresezi un singur fișier cu setările predefinite.

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

Archive(Arhivă, ArchiveLoadOptions, ArchiveEntrySettings)

Inițializează o nouă instanță a clasei Aspose.Zip.Archive și compune o listă de intrări care poate fi extras din arhivă.

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

Parameters

sourceStream Stream

Sursă a arhivelor.

loadOptions ArchiveLoadOptions

Opțiuni de încărcare a arhivelor existente cu.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.ArchiveEntry.Dacă nu este specificat, va fi utilizată cea mai frecventă compresie Deflate fără criptare.

Examples

Următorul exemplu extrage un arhiv criptat, apoi decomprime prima intrare la un .

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

Acest constructor nu decomprime nici o intrare. a se vedea Aspose.Zip.ArchiveEntry.Open(System.String) metoda de decomprimare.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Titlul de criptare pentru AES contrazice metoda de compresie WinZip.

Archive(Cuvânt cheie, ArchiveLoadOptions, ArchiveEntrySettings)

Inițializează o nouă instanță a clasei Aspose.Zip.Archive și compune o listă de intrări care poate fi extras din arhivă.

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

Parameters

path string

Calea complet calificată sau calea relativă către fișierul de arhivă.

loadOptions ArchiveLoadOptions

Opțiuni de încărcare a arhivelor existente cu.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.ArchiveEntry.Dacă nu este specificat, va fi utilizată cea mai frecventă compresie Deflate fără criptare.

Examples

Următorul exemplu extrage un arhiv criptat, apoi decomprime prima intrare la un .

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

Acest constructor nu decomprime nici o intrare. a se vedea Aspose.Zip.ArchiveEntry.Open(System.String) metoda de decomprimare.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

Calea " este goală, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul path" este refuzat.

PathTooLongException

Calea specificată path’, numele fișierului, sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la path’ conține o coloană (:) în mijlocul stringului.

FileNotFoundException

Dosarul nu a fost găsit.

DirectoryNotFoundException

Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.

IOException

Dosarul este deja deschis.

InvalidDataException

Dosarul este corupt.

Archive(String și String[], ArhivăOpțiuni)

Inițializează o nouă instanță a clasei Aspose.Zip.Archive din arhiva multi-volume zip și compune o listă de intrări care poate fi extras din arhivă.

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

Parameters

mainSegment string

Calea către ultimul segment al arhivului multi-volume cu directorul central.

De obicei, acest segment are o extensie *.zip și mai mică decât celelalte.

segmentsInOrder string []

Calea către fiecare segment, dar ultima din multi-volume zip arhivă respectând ordinea.

De obicei au numit filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Opțiuni de încărcare a arhivelor existente cu.

Examples

Acest eșantion extrage într-o directorie un arhiv de trei segmente.

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

Exceptions

EndOfStreamException

Nu puteți încărca titlurile ZIP, deoarece fișierele furnizate sunt corupte.

Properties

Entries

Obține intrări de tip Aspose.Zip.ArchiveEntry care constituie arhiva.

public ReadOnlyCollection<archiveentry> Entries { get; }

Valoarea proprietății

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Setările de compresie și criptare utilizate pentru elementele nou adăugate Aspose.Zip.ArchiveEntry.

public ArchiveEntrySettings NewEntrySettings { get; }

Valoarea proprietății

ArchiveEntrySettings

Methods

CreateEntries(Cuvânt cheie, bool)

Adăugați în arhiv toate fișierele și directorii în mod recurent în directorul dat.

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

Parameters

directory DirectoryInfo

Directoare pentru compresă.

includeRootDirectory bool

Indică dacă să includă directorul de rădăcină în sine sau nu.

Returns

Archive

Arhiva cu intrări compuse.

Examples

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

Exceptions

DirectoryNotFoundException

Calea către directory" este invalidă, de exemplu fiind pe un disc necartat.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directory".

CreateEntries(Cuvânt cheie, bool)

Adăugați în arhiv toate fișierele și directorii în mod recurent în directorul dat.

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

Parameters

sourceDirectory string

Directoare pentru compresă.

includeRootDirectory bool

Indică dacă să includă directorul de rădăcină în sine sau nu.

Returns

Archive

Arhiva cu intrări compuse.

Examples

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

CreateEntry(string, string, bool, ArchiveEntrySettings)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

path string

Denumirea complet calificată a noului fișier sau denumirea relativă a fișierului care urmează să fie comprimată.

openImmediately bool

Adevărat, dacă deschideți imediat fișierul, în caz contrar deschideți fișierul pe stocarea arhivelor.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instanta de intrare ZIP.

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

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

Dacă fișierul este deschis imediat cu parametru, acesta este blocat până când arhiva este salvată.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

Calea " este goală, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul path" este refuzat.

PathTooLongException

Calea specificată path’, numele fișierului, sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la path’ conține o coloană (:) în mijlocul stringului.

CreateEntry(Arhivă, Arhivă, Arhivă)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

source Stream

Rata de intrare pentru intrare.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instanta de intrare ZIP.

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, ArhivăEntrySettings)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

fileInfo FileInfo

Metadata fișierului trebuie să fie comprimată.

openImmediately bool

Adevărat, dacă deschideți imediat fișierul, în caz contrar deschideți fișierul pe stocarea arhivelor.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instanta de intrare ZIP.

Examples

Combinați arhiva cu intrări criptate cu diferite metode de criptare și parole fiecare.

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

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

Dacă fișierul este deschis imediat cu parametru, acesta este blocat până când arhiva este salvată.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.

IOException

Dosarul este deja deschis.

CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

source Stream

Rata de intrare pentru intrare.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

Metadata fișierului sau a folderului trebuie să fie compresă.

Returns

ArchiveEntry

Instanta de intrare ZIP.

Examples

Arhivă cu intrare criptată.

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

Numele de intrare este setat numai în parametru. numele de fișier furnizat în parametru nu afectează numele de intrare.

se poate face referire la System.IO.DirectoryInfo dacă intrarea este directorie.

Exceptions

InvalidOperationException

Amândouă source’ și fileInfo’ sunt nule sau source’ este nule și fileInfo’ este pentru director.

CreateEntry(Cuvânt cheie: Func, ArhivăEntrySettings)

Creați o singură intrare în arhivă.

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

Parameters

name string

Numele intrării.

streamProvider Func < Stream >

Metoda care oferă fluxul de intrare pentru intrare.

newEntrySettings ArchiveEntrySettings

Setările de compresie și criptare utilizate pentru a adăuga elementul Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instanta de intrare ZIP.

Examples

Arhivă cu intrare criptată.

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

Această metodă este pentru .NET Framework 4.0 și mai sus și pentru versiunea .NET Standard 2.0.

DeleteEntry(ArchiveEntry)

Elimină prima apariție a intrării specifice din lista de intrări.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Introducere pentru a elimina din lista de intrări.

Returns

Archive

Arhiva cu intrarea este ștersă.

Examples

Iată cum puteți șterge toate intrările, cu excepția celei din urmă:

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 este dispărută.

DeleteEntry(int)

Îndepărtează intrarea din lista de intrare prin index.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Indicele de intrare bazat pe zero trebuie eliminat.

Returns

Archive

Arhiva cu intrarea este ștersă.

Examples

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

Exceptions

ObjectDisposedException

Arhiva este dispărută.

ArgumentOutOfRangeException

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

Dispose()

Îndeplinește sarcini definite prin aplicare asociate cu eliberarea, eliberarea sau redistribuirea resurselor necontrolate.

public void Dispose()

Dispose(Boulă)

Îndeplinește sarcini definite prin aplicare asociate cu eliberarea, eliberarea sau redistribuirea resurselor necontrolate.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

În cazul în care resursele gestionate ar trebui să fie eliminate.

ExtractToDirectory(Strângere)

Extrage toate fișierele din arhivă în directorul furnizat.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Calea către directorie pentru a pune în fișierele extrase.

Examples

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

Remarks

Dacă directorul nu există, acesta va fi creat.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Calea specificată, numele fișierului sau ambele depășesc lungimea maximă definită de sistem. De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directorul existent.

NotSupportedException

Dacă directorul nu există, calea conține un caracter colon (:) care nu face parte dintr-o etichetă de disc (“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

Directoriul specificat de cale este un fișier. -or- Numele rețelei nu este cunoscut.

InvalidDataException

Parola greșită a fost furnizată. - sau - Arhiva este coruptă.

Save(Arhivă, ArchiveSaveOptions)

Salvează arhiva la fluxul furnizat.

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

Parameters

outputStream Stream

Războiul de destinaţie.

saveOptions ArchiveSaveOptions

Opţiuni de arhivare.

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

Trebuie să fie scrisă.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Arhiva este dispărută.

Save(Arhivă, ArchiveSaveOptions)

Salvează arhiva la fișierul de destinație furnizat.

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

Parameters

destinationFileName string

Dacă numele fișierului specific se referă la un fișier existent, acesta va fi supraîncris.

saveOptions ArchiveSaveOptions

Opţiuni de arhivare.

Examples

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

Remarks

Este posibil să salvați un arhiv pe aceeași cale pe care a fost încărcat de la. Cu toate acestea, acest lucru nu este recomandat deoarece această abordare utilizează copierea la un fișier temporar.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Solicitantul nu are permisiunea necesară de acces.

ArgumentException

destinationFileName’ este gol, conține doar spații albe sau conține caractere invalide.

UnauthorizedAccessException

Accesul la fișierul destinationFileName’ este refuzat.

PathTooLongException

De exemplu, pe platformele bazate pe Windows, căile trebuie să fie mai puțin de 248 de caractere, iar numele fișierului trebuie să fie mai puțin de 260 de caractere.

NotSupportedException

Fișierul la destinationFileName’ conține o coloană (:) în mijlocul stringului.

FileNotFoundException

Dosarul nu a fost găsit.

DirectoryNotFoundException

Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.

IOException

Dosarul este deja deschis.

SaveSplit(Cuvânt cheie, SplitArchiveSaveOptions)

Salvează arhiva multi-volume la directorul de destinație furnizat.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Calea către directorul în care se creează segmentele de arhivă.

options SplitArchiveSaveOptions

Opțiuni pentru stocarea arhivelor, inclusiv numele fișierului.

Examples

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

Remarks

Această metodă conține mai multe fișiere (filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Nu se poate face un arhiv existent multi-volume.

Exceptions

InvalidOperationException

Acest arhiv a fost deschis din sursa existenta.

NotSupportedException

Acest arhiv este atât compresat cu metoda XZ și criptat.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Solicitantul nu are permisiunea necesară pentru a accesa directorul.

ArgumentException

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

PathTooLongException

Calea specificată depășește lungimea maximă definită de sistem.

ObjectDisposedException

Arhiva este dispărută.

 Română