Class Archive
De naam: Aspose.Zip Verzameling: Aspose.Zip.dll (25.5.0)
Deze klasse vertegenwoordigt een zip archiefbestand. Gebruik het om te composeren, extraheren of updaten zip-bestanden.
public class Archive : IArchive, IDisposable
Inheritance
Implements
Geëerbiede leden
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Initialiseert een nieuwe instantie van de Aspose.Zip.Archive-klasse met optionele instellingen voor de inzichten.
public Archive(ArchiveEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor nieuw toegevoegde Aspose.Zip.ArchiveEntry items.Als niet aangegeven, de meest voorkomende Deflate compression zonder encryptie zou worden gebruikt.
Examples
Het volgende voorbeeld laat zien hoe u een enkele bestand met standaardinstellingen kunt compresseren.
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, ArchiveLoadOptions, ArchiveEntrySettings)
Initialiseert een nieuwe instantie van de Aspose.Zip.Archive-klasse en maakt een inlijstlijst die uit het archief kan worden geïntroduceerd.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
sourceStream
Stream
De bron van het archief.
loadOptions
ArchiveLoadOptions
Opties om bestaande archief met te laden.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor nieuw toegevoegde Aspose.Zip.ArchiveEntry items.Als niet aangegeven, de meest voorkomende Deflate compression zonder encryptie zou worden gebruikt.
Examples
Het volgende voorbeeld extract een versleutelde archief, vervolgens dekomprimeert de eerste ingang naar een .
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
Deze constructor decomprimeert geen ingang. zie Aspose.Zip.ArchiveEntry.Open(System.String) methode voor decompressie.
Exceptions
sourceStream’ is not seekable.
Encryptie header voor AES is in strijd met WinZip compressie methode.
Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)
Initialiseert een nieuwe instantie van de Aspose.Zip.Archive-klasse en maakt een inlijstlijst die uit het archief kan worden geïntroduceerd.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
path
string
De volledig gekwalificeerde of de relatieve route naar het archiefbestand.
loadOptions
ArchiveLoadOptions
Opties om bestaande archief met te laden.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor nieuw toegevoegde Aspose.Zip.ArchiveEntry items.Als niet aangegeven, de meest voorkomende Deflate compression zonder encryptie zou worden gebruikt.
Examples
Het volgende voorbeeld extract een versleutelde archief, vervolgens dekomprimeert de eerste ingang naar een .
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
Deze constructor decomprimeert geen ingang. zie Aspose.Zip.ArchiveEntry.Open(System.String) methode voor decompressie.
Exceptions
path’ is null.
De oproepgever heeft niet de vereiste toestemming om toegang te krijgen.
De path’ is leeg, bevat alleen witte ruimtes of bevat invalide tekens.
De toegang tot het bestand path’ wordt geweigerd.
De aangegeven path’, bestandsnaam, of beide overschrijden de door het systeem gedefinieerde maximale lengte. Bijvoorbeeld, op Windows-gebaseerde platforms, moeten paden minder dan 248 tekens zijn, en bestandsnamen moeten minder dan 260 tekens zijn.
Het bestand op path’ bevat een kolom (:) in het midden van de string.
Het bestand is niet gevonden.
De aangegeven route is ongeldig, bijvoorbeeld op een onmapped drive.
Het bestand is al open.
Het bestand is corrupt.
Archive(String en String[], ArchiveLoadOptions)
Initialiseert een nieuwe instantie van de Aspose.Zip.Archive-klasse uit het multi-volume zip-archief en maakt een inlijstlijst die uit het archief kan worden geïntroduceerd.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
Weg naar het laatste segment van multi-volume archief met de centrale directory.
Meestal heeft dit segment een *.zip-uitbreiding en kleiner dan anderen.
segmentsInOrder
string
[]
Paths naar elk segment maar de laatste van multi-volume zip archief respecteren order.
Meestal namen ze filename.z01, filename.z02, …, filename.z(n-1).
loadOptions
ArchiveLoadOptions
Opties om bestaande archief met te laden.
Examples
Dit monster extract in een directory een archief van drie segmenten.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}
Exceptions
Het is niet mogelijk om ZIP-headsers te laden omdat de verstrekte bestanden corrupt zijn.
Properties
Entries
Geeft input van Aspose.Zip.ArchiveEntry type die het archief vormt.
public ReadOnlyCollection<archiveentry> Entries { get; }
Eigendomswaarde
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Compression en encryptie instellingen gebruikt voor nieuw toegevoegde Aspose.Zip.ArchiveEntry items.
public ArchiveEntrySettings NewEntrySettings { get; }
Eigendomswaarde
Methods
CreateEntries(DirectoryInfo, Bool)
Voeg in het archief alle bestanden en directories opnieuw toe in de gegeven directory.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
Directory voor compressie.
includeRootDirectory
bool
Hiermee wordt aangegeven of de root directory zelf moet worden opgenomen of niet.
Returns
Het archief met ingeschreven inzichten.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
De route naar directory’ is ongeldig, bijvoorbeeld op een niet-mapped schijf.
De oproeker heeft niet de vereiste toestemming om toegang te krijgen tot directory'.
CreateEntries(String en Bool)
Voeg in het archief alle bestanden en directories opnieuw toe in de gegeven directory.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
Directory voor compressie.
includeRootDirectory
bool
Hiermee wordt aangegeven of de root directory zelf moet worden opgenomen of niet.
Returns
Het archief met ingeschreven inzichten.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}
CreateEntry(string, string, bool, ArchiveEntrySettings)
Creëren van een enkele ingang binnen het archief.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
De naam van de ingang.
path
string
De volledig gekwalificeerde naam van de nieuwe bestand, of de relatieve bestandnaam om te worden gecomprimeerd.
openImmediately
bool
Het is waar, als u het bestand onmiddellijk opent, anders opent u het bestand op archiefopslag.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor het toevoegen van Aspose.Zip.ArchiveEntry item.
Returns
Zip ingang instantie.
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
De invoernaam is uitsluitend ingesteld binnen de parameter.De in de parameter verstrekte bestandnaam beïnvloedt de invoernaam niet.
Als het bestand onmiddellijk wordt geopend met de parameter wordt het geblokkeerd totdat het archief is opgeslagen.
Exceptions
path’ is null.
De oproepgever heeft niet de vereiste toestemming om toegang te krijgen.
De path’ is leeg, bevat alleen witte ruimtes of bevat invalide tekens.
De toegang tot het bestand path’ wordt geweigerd.
De aangegeven path’, bestandsnaam, of beide overschrijden de door het systeem gedefinieerde maximale lengte. Bijvoorbeeld, op Windows-gebaseerde platforms, moeten paden minder dan 248 tekens zijn, en bestandsnamen moeten minder dan 260 tekens zijn.
Het bestand op path’ bevat een kolom (:) in het midden van de string.
CreateEntry(String, Stream en ArchiveEntrySettings)
Creëren van een enkele ingang binnen het archief.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
De naam van de ingang.
source
Stream
De ingangstromen voor de ingang.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor het toevoegen van Aspose.Zip.ArchiveEntry item.
Returns
Zip ingang instantie.
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)
Creëren van een enkele ingang binnen het archief.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
De naam van de ingang.
fileInfo
FileInfo
De metadata van het bestand moeten worden gecomprimeerd.
openImmediately
bool
Het is waar, als u het bestand onmiddellijk opent, anders opent u het bestand op archiefopslag.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor het toevoegen van Aspose.Zip.ArchiveEntry item.
Returns
Zip ingang instantie.
Examples
Compose archief met ingangen gecodeerd met verschillende encryptie methoden en wachtwoorden elk.
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
De invoernaam is uitsluitend ingesteld binnen de parameter.De in de parameter verstrekte bestandnaam beïnvloedt de invoernaam niet.
Als het bestand onmiddellijk wordt geopend met de parameter wordt het geblokkeerd totdat het archief is opgeslagen.
Exceptions
fileInfo’ is read-only or is a directory.
De aangegeven route is ongeldig, bijvoorbeeld op een onmapped drive.
Het bestand is al open.
CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)
Creëren van een enkele ingang binnen het archief.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
De naam van de ingang.
source
Stream
De ingangstromen voor de ingang.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor het toevoegen van Aspose.Zip.ArchiveEntry item.
fileInfo
FileSystemInfo
De metadata van het bestand of de map om te worden gecomprimeerd.
Returns
Zip ingang instantie.
Examples
Compose archief met een versleutelde ingang.
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
De invoernaam is uitsluitend ingesteld binnen de parameter.De in de parameter verstrekte bestandnaam beïnvloedt de invoernaam niet.
kan verwijzen naar System.IO.DirectoryInfo als de ingang een directory is.
Exceptions
Beide source’ en
fileInfo’ zijn nul of
source’ is nul en
fileInfo’ staat voor directory.
CreateEntry(String, Func , ArchievenEntrySettings)
Creëren van een enkele ingang binnen het archief.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
De naam van de ingang.
streamProvider
Func
<
Stream
>
De methode die de ingangstromen voor de ingang biedt.
newEntrySettings
ArchiveEntrySettings
Compression en encryptie instellingen gebruikt voor het toevoegen van Aspose.Zip.ArchiveEntry item.
Returns
Zip ingang instantie.
Examples
Compose archief met een versleutelde ingang.
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
Deze methode is voor .NET Framework 4.0 en hoger en voor .NET Standard 2.0 versie.
DeleteEntry(ArchiveEntry)
Verwijder de eerste verschijning van de specifieke ingang uit de inganglijst.
public Archive DeleteEntry(ArchiveEntry entry)
Parameters
entry
ArchiveEntry
De ingang om te verwijderen uit de inganglijst.
Returns
Het archief met de ingang is verwijderd.
Examples
Hier is hoe u alle inschrijvingen kunt verwijderen met uitzondering van de laatste:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
Het archief is uitgeschakeld.
DeleteEntry(Int)
Verwijder de ingang van de inganglijst door index.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
De nulgebaseerde index van de ingang te verwijderen.
Returns
Het archief met de ingang is verwijderd.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Het archief is uitgeschakeld.
entryIndex’ is less than 0.-or-
entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Het vervult toepasselijk gedefinieerde taken die verband houden met het vrijgeven, vrijgeven of herstructureren van onbeheerde middelen.
public void Dispose()
Dispose(Bool)
Het vervult toepasselijk gedefinieerde taken die verband houden met het vrijgeven, vrijgeven of herstructureren van onbeheerde middelen.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
Of de beheerde middelen moeten worden afgebroken.
ExtractToDirectory(String)
Extract alle bestanden in het archief naar het verstrekte directory.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
De route naar het directory om de geïntroduceerde bestanden in te plaatsen.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
Als de directory niet bestaat, wordt deze gemaakt.
Exceptions
destinationDirectory’ is null.
De aangegeven pad, bestandnaam of beide overschrijden de door het systeem gedefinieerde maximale lengte. Bijvoorbeeld, op Windows-gebaseerde platforms moeten paden minder dan 248 tekens en bestandnamen moeten minder dan 260 tekens zijn.
De oproepgever heeft niet de vereiste toestemming om toegang te krijgen tot de bestaande directory.
Als de directory niet bestaat, bevat de route een colon karakter (:) dat niet deel uitmaakt van een drive label (“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 (:).
De door de route aangegeven directory is een bestand. -or- De netwerknaam is niet bekend.
Het verkeerde wachtwoord is verstrekt. - of - Het archief is corrupt.
Save(Stream, ArchiveSaveOptions)
Speel archief op de geleverde stroom.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)
Parameters
outputStream
Stream
De bestemming stroom.
saveOptions
ArchiveSaveOptions
Opties voor archiefbesparing.
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
moet geschreven zijn.
Exceptions
outputStream’ is not writable.
Het archief is uitgeschakeld.
Save(String, ArchiefSaveOptions)
Het archief wordt opgeslagen naar het bestand van bestemming.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)
Parameters
destinationFileName
string
De route van het archief om te worden gecreëerd.Als de aangegeven bestandnaam wijst op een bestaande bestand, wordt het overgeschreven.
saveOptions
ArchiveSaveOptions
Opties voor archiefbesparing.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}
Remarks
Het is mogelijk om een archief op te slaan op dezelfde route als het is geladen van. echter, dit is niet aanbevolen omdat deze benadering gebruikt het kopiëren naar een tijdelijke bestand.
Exceptions
destinationFileName’ is null.
De oproepgever heeft niet de vereiste toestemming om toegang te krijgen.
De destinationFileName’ is leeg, bevat alleen witte ruimtes of bevat invalide tekens.
De toegang tot het bestand destinationFileName’ wordt geweigerd.
De aangegeven destinationFileName’, bestandsnaam, of beide overschrijden de systeemdefinieerde maximale lengte.Bijvoorbeeld, op Windows-gebaseerde platforms, moeten paden minder dan 248 tekens zijn, en bestandsnamen moeten minder dan 260 tekens zijn.
Het bestand bij destinationFileName’ bevat een kolom (:) in het midden van de string.
Het bestand is niet gevonden.
De aangegeven route is ongeldig, bijvoorbeeld op een onmapped drive.
Het bestand is al open.
SaveSplit(String, SplitArchiveSaveOptions)
Bespaart het multi-volume archief naar het bestemmingsdirector dat is verstrekt.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)
Parameters
destinationDirectory
string
De route naar de directory waar archiefsegmenten moeten worden gecreëerd.
options
SplitArchiveSaveOptions
Opties voor het opslaan van bestanden, met inbegrip van bestandnaam.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}
Remarks
Deze methode bestaat uit verschillende () bestanden filename.z01, filename.z02, …, filename.z(n-1), filename.zip.
Het is niet mogelijk om bestaande archief multi-volume te maken.
Exceptions
Dit archief is vanaf de bestaande bron geopend.
Dit archief wordt zowel gecomprimeerd met de XZ-methode als versleuteld.
destinationDirectory’ is null.
De oproeker heeft niet de vereiste toestemming om toegang te krijgen tot de directory.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
De aangegeven route overschrijdt de door het systeem gedefinieerde maximale lengte.
Het archief is uitgeschakeld.