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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Sökanden har inte behörig tillstånd att komma åt.
path’ är tom, innehåller endast vita utrymmen, eller innehåller olagliga tecken.
Tillgång till filen path" vägras.
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.
Filen på path’ innehåller en kolumn (:) i mitten av raden.
Filen hittades inte.
Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.
Filen är redan öppen.
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
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
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
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
Vägen till direktory’ är ogiltig, till exempel på en icke-mappad disk.
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
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
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
path’ is null.
Sökanden har inte behörig tillstånd att komma åt.
path’ är tom, innehåller endast vita utrymmen, eller innehåller olagliga tecken.
Tillgång till filen path" vägras.
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.
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
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
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
fileInfo’ is read-only or is a directory.
Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.
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
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
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
Zip inträde instans.
Examples
Skapa arkiv med krypterad inmatning.
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
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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
Arkivet med ingången raderas.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Arkiv är upplyst.
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
destinationDirectory’ is null.
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.
Sökanden har inte behörig behörighet att få tillgång till det befintliga katalogen.
Om katalogen inte existerar, innehåller vägen en kolumnkaraktär (:) som inte är en del av en drivetikett (“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 (:).
Den katalog som anges av vägen är en fil. -eller- Nätverksnamnet är inte känt.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Sökanden har inte behörig tillstånd att komma åt.
destinationFileName’ är tom, innehåller endast vita utrymmen, eller innehåller ogiltiga tecken.
Tillgång till filen destinationFileName’ vägras.
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.
Filen i destinationFileName’ innehåller en kolumn (:) i mitten av raden.
Filen hittades inte.
Den angivna vägen är ogiltig, t.ex. att vara på en okartad disk.
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
Detta arkiv har öppnats från den befintliga källan.
Detta arkiv är både komprimerat med XZ-metoden och krypterat.
destinationDirectory’ is null.
Ringaren har inte tillståndet att få tillgång till katalogen.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Den angivna vägen överstiger den systemdefinierade maximala längden.
Arkivet är upplöst.