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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Pozivač nema potrebnu dozvolu za pristup.
path’ je prazan, sadrži samo bijele prostore, ili sadrži nevažeće znakove.
Pristup datoteci path" je odbijen.
Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.
File na path’ sadrži kolona (:) u sredini trake.
Dosje nije pronađeno.
Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.
Dosje je već otvoreno.
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
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
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
Arhiva s upisima sastavljena.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
Put do directory’ je nevažeći, na primjer, biti na nemapiranom disku.
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
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
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
path’ is null.
Pozivač nema potrebnu dozvolu za pristup.
path’ je prazan, sadrži samo bijele prostore, ili sadrži nevažeće znakove.
Pristup datoteci path" je odbijen.
Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.
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
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
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
fileInfo’ is read-only or is a directory.
Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.
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
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
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
Zip ulazna instanca.
Examples
Sastavite arhiv s šifriranim ulazom.
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
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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
Slijedeći članakArhiva s ulazom uklonjena
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Arhiva je ispuštena.
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
destinationDirectory’ is null.
Na primjer, na Windows platformama, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.
Pozivač nema potrebnu dozvolu za pristup postojećem adresaru.
Ako direktorija ne postoji, put sadrži znak kolona (:) koji nije dio oznake pogona (“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 (:).
Direktorija određena putem je datoteka. -ili- Ime mreže nije poznato.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Pozivač nema potrebnu dozvolu za pristup.
destinationFileName’ je prazan, sadrži samo bijele prostore ili sadrži nevažeće znakove.
Pristup datoteci destinationFileName’ je odbijen.
Na primjer, na platformama s Windows-om, staze moraju biti manje od 248 znakova, a imena datoteke moraju biti manje od 260 znakova.
File u destinationFileName’ sadrži kolona (:) u sredini trake.
Dosje nije pronađeno.
Navedeni put je nevažeći, na primjer, biti na nemapiranom pogonu.
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
Ovaj arhiv je otvoren iz postojećeg izvora.
Ovaj arhiv je komprimiran XZ metodom i šifriran.
destinationDirectory’ is null.
Pozivač nema potrebnu dozvolu za pristup adresi.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Navedena staza prelazi maksimalnu duljinu koju je definirao sustav.
Arhiva je ispuštena.