Class Archive
Nom dels espais: Aspose.Zip Assemblea: Aspose.Zip.dll (25.5.0)
Aquesta classe representa un fitxer d’arxiu zip. Utilitzeu-lo per compondre, extreure o actualitzar els arxius zip .
public class Archive : IArchive, IDisposable
Inheritance
Implements
Membres heretats
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Inicialitza una nova instància de la classe Aspose.Zip.Archive amb configuracions opcionals per a les seves entrades.
public Archive(ArchiveEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.
Examples
L’exemple següent mostra com comprimir un sol arxiu amb les configuracions predefinides.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var archive = new Archive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(zipFile);
}
}
Archive(Tractament, ArchiveLoadOptions, ArchiveEntrySettings)
Inicialitza una nova instància de la classe Aspose.Zip.Arxiu i componeix una llista d’entrada que es pot extreure de l’arxiu.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
sourceStream
Stream
La font de l’arxiu.
loadOptions
ArchiveLoadOptions
Opcions per carregar arxius existents amb.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.
Examples
L’exemple següent extraeix un arxiu encriptat, i després descomprimeix la primera entrada a 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
Aquest constructor no descomprimeix cap entrada. Veure Aspose.Zip.ArchiveEntry.Open(System.String) mètode per descomprimir.
Exceptions
sourceStream’ is not seekable.
El títol de xifra per a AES contrasta amb el mètode de compressió WinZip.
Archive(fonts, ArchiveLoadOptions, ArchiveEntrySettings)
Inicialitza una nova instància de la classe Aspose.Zip.Arxiu i componeix una llista d’entrada que es pot extreure de l’arxiu.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
path
string
El completament qualificat o el camí relatiu a l’arxiu.
loadOptions
ArchiveLoadOptions
Opcions per carregar arxius existents amb.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.Si no s’especifiqui, s’utilitzaria la compressió de Deflate més comuna sense xifraci.
Examples
L’exemple següent extraeix un arxiu encriptat, i després descomprimeix la primera entrada a 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
Aquest constructor no descomprimeix cap entrada. Veure Aspose.Zip.ArchiveEntry.Open(System.String) mètode per descomprimir.
Exceptions
path’ is null.
El client no té el permís d’accés requerit.
La path’ és buida, només conté espais blancs, o conté caràcters invalidats.
L’accés al fitxer path" es nega.
El nom de fitxer especificat path", o tots dos superen la longitud màxima definida pel sistema. per exemple, en les plataformes basades en Windows, els passos han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.
El fitxer a path’ conté una columna (:) al mig de la cadena.
El fitxer no es troba.
La ruta especificada és invalidada, com per exemple estar en un disc no mapat.
El fitxer ja està obert.
El fitxer està corromput.
Archive(Tècnic, Tècnic[], Arxiu Opcions)
Inicialitza una nova instància de la classe Aspose.Zip.Arxiu des de l’arxiu zip multi-volum i componeix una llista d’entrada que es pot extreure de l’arxiu.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
Pas a l’últim segment de l’arxiu multivolum amb la direcció central.
Normalment aquest segment té una extensió *.zip i més petita que altres.
segmentsInOrder
string
[]
Passos a cada segment però l’últim d’arxiu zip multi-volum respecte a l’ordre.
Normalment van anomenar filename.z01, filename.z02, …, filename.z(n-1).
loadOptions
ArchiveLoadOptions
Opcions per carregar arxius existents amb.
Examples
Aquesta mostra extraeix a un directory un arxiu de tres segments.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}
Exceptions
No es poden carregar captures ZIP perquè els fitxers proporcionats estan corromputs.
Properties
Entries
Obté entrades del tipus Aspose.Zip.ArchiveEntry que constitueix l’arxiu.
public ReadOnlyCollection<archiveentry> Entries { get; }
Valor de la propietat
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Configuracions de compressió i xifra utilitzades per a nous elements afegits Aspose.Zip.ArchiveEntry.
public ArchiveEntrySettings NewEntrySettings { get; }
Valor de la propietat
Methods
CreateEntries(DireccióInfo, Bool)
Afegeix a l’arxiu tots els arxius i directoris recursivament en el directori donat.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
Direcció per a la compressi.
includeRootDirectory
bool
Indica si incloure o no la pròpia direcció de les arrels.
Returns
L’arxiu amb entrades compostes.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
El camí a la direcció directory’ és invalid, com per exemple estar en un disc no mapat.
El convocador no té el permís requerit per accedir a la direcció directory'.
CreateEntries(Tàrrega, Bool)
Afegeix a l’arxiu tots els arxius i directoris recursivament en el directori donat.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
Direcció per a la compressi.
includeRootDirectory
bool
Indica si incloure o no la pròpia direcció de les arrels.
Returns
L’arxiu amb entrades compostes.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}
CreateEntry(string, string, bool, ArchiveEntrySettings)
Crear una entrada única dins de l’arxiu.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
El nom de l’entrada.
path
string
El nom completament qualificat del nou fitxer, o el nom de fitxer relatiu a ser comprès.
openImmediately
bool
s cert, si obre el fitxer immediatament, d’altra banda obre el fitxer en l’arxiu d’emmagatzematge.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.
Returns
Instància d’entrada 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
El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.
Si el fitxer s’obre immediatament amb el paràmetre es bloqueja fins que l’arxiu es salva.
Exceptions
path’ is null.
El client no té el permís d’accés requerit.
La path’ és buida, només conté espais blancs, o conté caràcters invalidats.
L’accés al fitxer path" es nega.
El nom de fitxer especificat path", o tots dos superen la longitud màxima definida pel sistema. per exemple, en les plataformes basades en Windows, els passos han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.
El fitxer a path’ conté una columna (:) al mig de la cadena.
CreateEntry(Llista, Llista, ArxiuEntrySettings)
Crear una entrada única dins de l’arxiu.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
El nom de l’entrada.
source
Stream
El flux d’entrada per a l’entrada.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.
Returns
Instància d’entrada 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(font, FileInfo, bool, ArchiveEntrySettings)
Crear una entrada única dins de l’arxiu.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
El nom de l’entrada.
fileInfo
FileInfo
Els metadats del fitxer s’han de compressar.
openImmediately
bool
s cert, si obre el fitxer immediatament, d’altra banda obre el fitxer en l’arxiu d’emmagatzematge.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.
Returns
Instància d’entrada ZIP.
Examples
Composar l’arxiu amb entrades encriptades amb diferents mètodes de xifració i contrasenyes cadascun.
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
El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.
Si el fitxer s’obre immediatament amb el paràmetre es bloqueja fins que l’arxiu es salva.
Exceptions
fileInfo’ is read-only or is a directory.
La ruta especificada és invalidada, com per exemple estar en un disc no mapat.
El fitxer ja està obert.
CreateEntry(fonts, Stream, ArchiveEntrySettings, FileSystemInfo)
Crear una entrada única dins de l’arxiu.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
El nom de l’entrada.
source
Stream
El flux d’entrada per a l’entrada.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.
fileInfo
FileSystemInfo
Els metadats del fitxer o de la carpeta per a ser comprès.
Returns
Instància d’entrada ZIP.
Examples
Composició d’arxius amb entrada encripta.
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
El nom d’entrada s’estableix únicament dins del paràmetre.El nom de fitxer proporcionat en el paràmetre no afecta el nom d’entrada.
pot referir-se a System.IO.DirectoryInfo si la entrada és directori.
Exceptions
Tothom source’ i
fileInfo’ són null o
source’ és null i
fileInfo’ és per a la direcci.
CreateEntry(Títol: Func , ArxiuEntrySettings)
Crear una entrada única dins de l’arxiu.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
El nom de l’entrada.
streamProvider
Func
<
Stream
>
El mètode que proporciona el flux d’entrada per a la entrada.
newEntrySettings
ArchiveEntrySettings
Configuracions de compressió i xifra utilitzades per afegir el element Aspose.Zip.ArchiveEntry.
Returns
Instància d’entrada ZIP.
Examples
Composició d’arxius amb entrada encripta.
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
Aquest mètode és per a .NET Framework 4.0 i superior i per a .NET Standard 2.0 versi.
DeleteEntry(ArchiveEntry)
Elimina la primera aparició de l’entrada específica de la llista d’entrada.
public Archive DeleteEntry(ArchiveEntry entry)
Parameters
entry
ArchiveEntry
L’entrada per eliminar de la llista d’entrada.
Returns
L’arxiu amb la entrada es va eliminar.
Examples
A continuació podeu eliminar totes les entrades excepte les últimes:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
L’arxiu està disposat.
DeleteEntry(Int)
Elimina l’entrada de la llista d’entrada per index.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
L’índex basat en zero de l’entrada a eliminar.
Returns
L’arxiu amb la entrada es va eliminar.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
L’arxiu està disposat.
entryIndex’ is less than 0.-or-
entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Realitza tasques definides per aplicació associades amb el lliurament, el lliurament o la restauració de recursos no gestionats.
public void Dispose()
Dispose(La botiga)
Realitza tasques definides per aplicació associades amb el lliurament, el lliurament o la restauració de recursos no gestionats.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
S’han de disposar de recursos gestionats.
ExtractToDirectory(Tàrrega)
Extrata tots els arxius de l’arxiu a la direcció proporcionada.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
El camí a la direcció per col·locar els arxius extraïts.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
Si la direcció no existeix, es crear.
Exceptions
destinationDirectory’ is null.
Per exemple, en les plataformes basades en Windows, els camins han de ser menys de 248 caràcters i els noms de fitxers han de ser menys de 260 caràcters.
El sol·licitant no té l’autorització necessària per accedir a la direcció existent.
Si el directori no existeix, el recorregut conté un caràcter colon (:) que no forma part d’una etiqueta 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 (:).
El directori especificat per ruta és un arxiu. -o- El nom de la xarxa no és conegut.
Es va proporcionar una contrasenya equivocada. - o - L’arxiu està corromput.
Save(Arxiu, ArxiuOpcions)
Salva l’arxiu al corrent proporcionat.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)
Parameters
outputStream
Stream
El flux de destinaci.
saveOptions
ArchiveSaveOptions
Opcions per a l’arxiu d’estalvi.
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
Ha de ser escriïble.
Exceptions
outputStream’ is not writable.
L’arxiu està disposat.
Save(Arxiu, ArchiveSaveOptions)
Salva l’arxiu al fitxer de destinació proporcionat.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)
Parameters
destinationFileName
string
El camí de l’arxiu que s’ha de crear. Si el nom de fitxer especificat indica un fitxer existent, serà sobreescrit.
saveOptions
ArchiveSaveOptions
Opcions per a l’arxiu d’estalvi.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}
Remarks
s possible guardar un arxiu al mateix camí que es va carregar des. No obstant això, això no es recomana perquè aquest enfocament utilitza la còpia a un arxiu temporal.
Exceptions
destinationFileName’ is null.
El client no té el permís d’accés requerit.
El destinationFileName’ és buit, només conté espais blancs, o conté caràcters invalidats.
L’accés al fitxer destinationFileName’ és negat.
El nom de fitxer especificat destinationFileName, o tots dos supera la longitud màxima definida pel sistema.Per exemple, en les plataformes basades en Windows, els camins han de ser menys de 248 caràcters, i els noms de fitxer han de ser menys de 260 caràcters.
El fitxer a destinationFileName’ conté una columna (:) al mig de la cadena.
El fitxer no es troba.
La ruta especificada és invalidada, com per exemple estar en un disc no mapat.
El fitxer ja està obert.
SaveSplit(Llistat, SplitArchiveSaveOptions)
Salva l’arxiu multivolum a la direcció de destinació proporcionada.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)
Parameters
destinationDirectory
string
El camí a la direcció on s’han de crear segments d’arxiu.
options
SplitArchiveSaveOptions
Opcions per a l’emmagatzematge d’arxius, inclòs el nom de fitxer.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}
Remarks
Aquest mètode componeix diversos () arxius filename.z01, filename.z02, …, filename.z(n-1), filename.zip.
No es pot fer un arxiu existent multi-volum.
Exceptions
Aquest arxiu va ser obert des de la font existent.
Aquest arxiu és compres amb el mètode XZ i encriptat.
destinationDirectory’ is null.
El sol·licitant no té el permís requerit per accedir a la direcci.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
El camí especificat supera la longitud màxima definida pel sistema.
L’arxiu està disposat.