Class Archive
Navne til: Aspose.Zip Sammensætning: Aspose.Zip.dll (25.5.0)
Denne klasse repræsenterer en zip arkivfil. Brug det til at komponere, udveksle eller opdatere zip filer.
public class Archive : IArchive, IDisposable
Inheritance
Implements
De arvede medlemmer
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Initialiserer en ny instans af Aspose.Zip.Archive-klassen med valgfrie indstillinger for dens indtægter.
public Archive(ArchiveEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.
Examples
Følgende eksempel viser, hvordan man komprimerer en enkelt fil med standardindstillinger.
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)
Initialiserer en ny instans af Aspose.Zip.Archive-klassen og komponerer en indgangsliste, der kan uddrages fra arkivet.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
sourceStream
Stream
kilden til arkivet.
loadOptions
ArchiveLoadOptions
Optioner til at oplade eksisterende arkiver med.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.
Examples
Følgende eksempel ekstrakter en krypteret arkiv, derefter dekomprimerer den første indgang til 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
Denne konstruktør dekomprimerer ingen indtægter. se Aspose.Zip.ArchiveEntry.Open(System.String) metode til dekomprimering.
Exceptions
sourceStream’ is not seekable.
Encryption header for AES er i modsætning til WinZip kompression metode.
Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)
Initialiserer en ny instans af Aspose.Zip.Archive-klassen og komponerer en indgangsliste, der kan uddrages fra arkivet.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
path
string
Den fuldt kvalificerede eller den relative vej til arkiveret.
loadOptions
ArchiveLoadOptions
Optioner til at oplade eksisterende arkiver med.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.Hvis ikke angivet, vil den mest almindelige Deflate kompression uden kryptering blive brugt.
Examples
Følgende eksempel ekstrakter en krypteret arkiv, derefter dekomprimerer den første indgang til 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
Denne konstruktør dekomprimerer ingen indtægter. se Aspose.Zip.ArchiveEntry.Open(System.String) metode til dekomprimering.
Exceptions
path’ is null.
Den pågældende har ikke den nødvendige tilladelse til at få adgang.
code class=“paramref”>path’ er tom, indeholder kun hvide rum, eller indeholder ulovlige tegn.
Tilgang til filen path’ er nægtet.
Den angivne path’, filnavn, eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal veje være mindre end 248 tegn, og filnavn skal være mindre end 260 tegn.
Filen på path’ indeholder en kolonne (:) i midten af ringen.
Filen er ikke fundet.
Den angivne rute er ugyldig, f.eks. på en ubemappet drive.
Filen er allerede åben.
Filen er korrupt.
Archive(String og String[], Arkiver Optioner)
Initialiserer et nyt eksempel på Aspose.Zip.Archive-klassen fra multi-volum zip-arkivet og komponerer en indgangsliste, der kan udvundes fra arkivet.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
Vejen til det sidste segment af multi-volum arkiv med det centrale katalog.
Normalt har dette segment *.zip udvidelse og mindre end andre.
segmentsInOrder
string
[]
Vejer til hvert segment, men den sidste af multi-volum zip arkiv respekterer ordre.
Normalt kaldte de filename.z01, filename.z02, …, filename.z(n-1).
loadOptions
ArchiveLoadOptions
Optioner til at oplade eksisterende arkiver med.
Examples
Denne prøve udvider et arkiv af tre segmenter til en katalog.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}
Exceptions
Du kan ikke oplade ZIP-hovedstoffer, fordi de leverede filer er korrupte.
Properties
Entries
Få indtægter af Aspose.Zip.ArchiveEntry type, der udgør arkivet.
public ReadOnlyCollection<archiveentry> Entries { get; }
Ejendomsværdi
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Kompression og kryptering indstillinger bruges til nyligt tilføjet Aspose.Zip.ArchiveEntry elementer.
public ArchiveEntrySettings NewEntrySettings { get; }
Ejendomsværdi
Methods
CreateEntries(Anmeldelse: Bool)
Tilføj til arkivet alle filer og kataloger gentagne gange i den angivne katalog.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
Direktorer til komprimering.
includeRootDirectory
bool
Indikerer, om man skal inkludere selve roddokumentet eller ej.
Returns
arkiver med indtægter sammensat.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
Vejen til direktory’ er ugyldig, f.eks. at være på en ubemappet disk.
Ringeren har ikke den nødvendige tilladelse til at få adgang til direktory'.
CreateEntries(String og Bool)
Tilføj til arkivet alle filer og kataloger gentagne gange i den angivne katalog.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
Direktorer til komprimering.
includeRootDirectory
bool
Indikerer, om man skal inkludere selve roddokumentet eller ej.
Returns
arkiver med indtægter sammensat.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}
CreateEntry(string, string, bool, ArchiveEntrySettings)
Skab en enkelt indgang i arkivet.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Navnet på indgangen.
path
string
Den fuldt kvalificerede filnavne eller den relative filnavne, der skal komprimeres.
openImmediately
bool
Sannelig, hvis du åbner filen umiddelbart, ellers åbner du filen på arkivering.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.
Returns
Zip indtægtsinstans.
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
Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.
Hvis filen åbnes umiddelbart med parameteren, blokeres den, indtil arkivet er gemt.
Exceptions
path’ is null.
Den pågældende har ikke den nødvendige tilladelse til at få adgang.
code class=“paramref”>path’ er tom, indeholder kun hvide rum, eller indeholder ulovlige tegn.
Tilgang til filen path’ er nægtet.
Den angivne path’, filnavn, eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal veje være mindre end 248 tegn, og filnavn skal være mindre end 260 tegn.
Filen på path’ indeholder en kolonne (:) i midten af ringen.
CreateEntry(Strøm, Strøm, ArkivEntrySettings)
Skab en enkelt indgang i arkivet.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Navnet på indgangen.
source
Stream
Indtægtsstrøm for indtægten.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.
Returns
Zip indtægtsinstans.
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)
Skab en enkelt indgang i arkivet.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Navnet på indgangen.
fileInfo
FileInfo
Metadata af filen skal komprimeres.
openImmediately
bool
Sannelig, hvis du åbner filen umiddelbart, ellers åbner du filen på arkivering.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.
Returns
Zip indtægtsinstans.
Examples
Kombiner arkiver med indtægter krypteret med forskellige krypteringsmetoder og adgangskoder hver.
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
Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.
Hvis filen åbnes umiddelbart med parameteren, blokeres den, indtil arkivet er gemt.
Exceptions
fileInfo’ is read-only or is a directory.
Den angivne rute er ugyldig, f.eks. på en ubemappet drive.
Filen er allerede åben.
CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)
Skab en enkelt indgang i arkivet.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
Navnet på indgangen.
source
Stream
Indtægtsstrøm for indtægten.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.
fileInfo
FileSystemInfo
Metadata af filen eller mappen skal komprimeres.
Returns
Zip indtægtsinstans.
Examples
Indtast arkiver med krypteret indtastning.
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
Indtægtsnavnet er kun indstillet inden for parameter. filnavnet angivet i parameter påvirker ikke indtægtsnavnet.
kan henvise til System.IO.DirectoryInfo, hvis indtægten er katalog.
Exceptions
Både source’ og
fileInfo’ er null eller
source’ er null og
fileInfo’ står for katalog.
CreateEntry(Strøm, Func<strøm>, Arkivindstillinger)
Skab en enkelt indgang i arkivet.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Navnet på indgangen.
streamProvider
Func
<
Stream
>
Metoden giver inputstrøm for indgangen.
newEntrySettings
ArchiveEntrySettings
Kompression og kryptering indstillinger bruges til at tilføje Aspose.Zip.ArchiveEntry element.
Returns
Zip indtægtsinstans.
Examples
Indtast arkiver med krypteret indtastning.
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
Denne metode er for .NET Framework 4.0 og ovenfor og for .NET Standard 2.0 version.
DeleteEntry(ArchiveEntry)
Fjerner den første forekomst af den specifikke indtastning fra indtastningslisten.
public Archive DeleteEntry(ArchiveEntry entry)
Parameters
entry
ArchiveEntry
Indtægten skal fjernes fra listen over indtægter.
Returns
Arkivet med indgangen er slettet.
Examples
Her er, hvordan du kan fjerne alle indtægter undtagen den sidste:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
Arkiverne er slettet.
DeleteEntry(Int)
Fjern indtægten fra indtægtslisten ved indeks.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
Det nulbaserede indeks af indtægten skal fjernes.
Returns
Arkivet med indgangen er slettet.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Arkiverne er slettet.
entryIndex’ is less than 0.-or-
entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Udfører applikationsdefinerede opgaver, der er forbundet med frigivelse, frigivelse eller genoprettelse af uadministrerede ressourcer.
public void Dispose()
Dispose(Bool)
Udfører applikationsdefinerede opgaver, der er forbundet med frigivelse, frigivelse eller genoprettelse af uadministrerede ressourcer.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
Om de forvaltede ressourcer skal fjernes.
ExtractToDirectory(String)
Udveksler alle filer i arkivet til den leverede katalog.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
Vejen til katalogen til at placere de udvundne filer i.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
Hvis katalogen ikke eksisterer, vil den blive oprettet.
Exceptions
destinationDirectory’ is null.
Den angivne rute, filnavn eller begge overstiger den systemdefinerede maksimale længde. For eksempel på Windows-baserede platforme skal ruter være mindre end 248 tegn og filnavn skal være mindre end 260 tegn.
Opkalderen har ikke den nødvendige tilladelse til at få adgang til den eksisterende katalog.
Hvis direktoriet ikke eksisterer, indeholder vejen en kolon karakter (:) som ikke er en del af et diskmærke (“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, der er angivet af vejen, er en fil. -eller- Netværksnavnet er ikke kendt.
Den forkerte adgangskode er blevet leveret. - eller - Arkiver er korrupt.
Save(Strøm, ArkivSaveOptions)
Sparer arkiver til den leverede strøm.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)
Parameters
outputStream
Stream
Destinationstrøm.
saveOptions
ArchiveSaveOptions
Optioner til arkivbesparelse.
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
Det skal være skriftligt.
Exceptions
outputStream’ is not writable.
Arkiverne er slettet.
Save(String, ArchiveSaveOptions)
Sparer arkiver til den foreløbige fil, der leveres.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)
Parameters
destinationFileName
string
Hvis den angivne filnavne angiver en eksisterende fil, vil den blive oversat.
saveOptions
ArchiveSaveOptions
Optioner til arkivbesparelse.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}
Remarks
Det er muligt at gemme et arkiv på samme vej, som det blev lastet fra. dog anbefales dette ikke, fordi denne tilgang bruger kopiering til en midlertidig fil.
Exceptions
destinationFileName’ is null.
Den pågældende har ikke den nødvendige tilladelse til at få adgang.
Den destinationFileName’ er tom, indeholder kun hvide rum, eller indeholder ugyldige tegn.
Tilgang til filen destinationFileName’ er nægtet.
Den angivne destinationFileName’, filnavnet, eller begge overskrider systemdefinerede maksimale længde.For eksempel på Windows-baserede platforme skal ruter være mindre end 248 tegn, og filnavnet skal være mindre end 260 tegn.
Fil på destinationFileName’ indeholder en kolonne (:) i midten af ringen.
Filen er ikke fundet.
Den angivne rute er ugyldig, f.eks. på en ubemappet drive.
Filen er allerede åben.
SaveSplit(String, SplitArchiveSaveOptions)
Sparer multi-volume-arkiv til den leverede destinationsdialog.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)
Parameters
destinationDirectory
string
Vejen til katalogen, hvor arkivsegmenter skal oprettes.
options
SplitArchiveSaveOptions
Alternativer til arkivbeskyttelse, herunder filnavne.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}
Remarks
Denne metode består af flere () filer filename.z01, filename.z02, …, filename.z(n-1), filename.zip.
Det er ikke muligt at lave eksisterende arkiver multi-volum.
Exceptions
Dette arkiv blev åbnet fra den eksisterende kilde.
Denne arkiv er både komprimeret med XZ-metoden og krypteret.
destinationDirectory’ is null.
Den pågældende har ikke den nødvendige tilladelse til at få adgang til katalogen.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Den angivne vej overstiger den systemdefinerede maksimale længde.
Arkiverne er slettet.