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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Solicitantul nu are permisiunea necesară de acces.
Calea " este goală, conține doar spații albe sau conține caractere invalide.
Accesul la fișierul path" este refuzat.
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.
Fișierul la path’ conține o coloană (:) în mijlocul stringului.
Dosarul nu a fost găsit.
Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.
Dosarul este deja deschis.
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
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
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
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
Calea către directory" este invalidă, de exemplu fiind pe un disc necartat.
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
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
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
path’ is null.
Solicitantul nu are permisiunea necesară de acces.
Calea " este goală, conține doar spații albe sau conține caractere invalide.
Accesul la fișierul path" este refuzat.
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.
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
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
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
fileInfo’ is read-only or is a directory.
Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.
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
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
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
Instanta de intrare ZIP.
Examples
Arhivă cu intrare criptată.
System.Func<Stream> 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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
Arhiva cu intrarea este ștersă.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Arhiva este dispărută.
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
destinationDirectory’ is null.
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.
Solicitantul nu are permisiunea necesară pentru a accesa directorul existent.
Dacă directorul nu există, calea conține un caracter colon (:) care nu face parte dintr-o etichetă de disc (“C:”).
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 (:).
Directoriul specificat de cale este un fișier. -or- Numele rețelei nu este cunoscut.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Solicitantul nu are permisiunea necesară de acces.
destinationFileName’ este gol, conține doar spații albe sau conține caractere invalide.
Accesul la fișierul destinationFileName’ este refuzat.
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.
Fișierul la destinationFileName’ conține o coloană (:) în mijlocul stringului.
Dosarul nu a fost găsit.
Calea specificată este invalidă, de exemplu, fiind pe un motor necartat.
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
Acest arhiv a fost deschis din sursa existenta.
Acest arhiv este atât compresat cu metoda XZ și criptat.
destinationDirectory’ is null.
Solicitantul nu are permisiunea necesară pentru a accesa directorul.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Calea specificată depășește lungimea maximă definită de sistem.
Arhiva este dispărută.