Class Archive
Název místa: Aspose.Zip Sbírka: Aspose.Zip.dll (25.5.0)
Tato třída představuje zip archivní soubor. Použijte ho k sestavování, extrahování nebo aktualizaci zipových archívů.
public class Archive : IArchive, IDisposable
Inheritance
Implements
Dědiční členové
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
Archive(ArchiveEntrySettings)
Začíná nový příklad třídy Aspose.Zip.Archive s volitelnými nastaveními pro její záznamy.
public Archive(ArchiveEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro nově přidané položky Aspose.Zip.ArchiveEntry.Pokud není uvedeno, nejčastější Deflate komprese bez šifrování by bylo použito.
Examples
Následující příklad ukazuje, jak komprimovat jeden soubor s výchozím nastavením.
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, ArchivLoadOptions, ArchivEntrySettings)
Začíná nový příklad třídy Aspose.Zip.Archive a sestaví seznam vstupů, které lze extrahovat z archivu.
public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
sourceStream
Stream
Zdroj z archivu.
loadOptions
ArchiveLoadOptions
Možnosti stahování stávajících archiv.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro nově přidané položky Aspose.Zip.ArchiveEntry.Pokud není uvedeno, nejčastější Deflate komprese bez šifrování by bylo použito.
Examples
Následující příklad extrahuje šifrovaný archiv, poté dekompresuje první vstup do .
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
Tento konstruktér dekompresuje žádné vstupy. viz Aspose.Zip.ArchiveEntry.Open(System.String) metoda dekompresován.
Exceptions
sourceStream’ is not seekable.
ifrovací název pro AES je v rozporu s WinZip kompresní metodou.
Archive(Stránky, ArchiveLoadOptions, ArchiveEntrySettings)
Začíná nový příklad třídy Aspose.Zip.Archive a sestaví seznam vstupů, které lze extrahovat z archivu.
public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)
Parameters
path
string
Plně kvalifikovaný nebo relativní cesta k archivu.
loadOptions
ArchiveLoadOptions
Možnosti stahování stávajících archiv.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro nově přidané položky Aspose.Zip.ArchiveEntry.Pokud není uvedeno, nejčastější Deflate komprese bez šifrování by bylo použito.
Examples
Následující příklad extrahuje šifrovaný archiv, poté dekompresuje první vstup do .
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
Tento konstruktér dekompresuje žádné vstupy. viz Aspose.Zip.ArchiveEntry.Open(System.String) metoda dekompresován.
Exceptions
path’ is null.
Zákazník nemá požadované povolení k přístupu.
code class=“paramref”>path’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.
Přístup k souboru path" je odmítnut.
Uvedený path", název souboru, nebo oba překračují maximální délku definovanou systémem. Například na platformách založených na Windows, trasy musí být méně než 248 znaků a názvy souboru musí být méně než 260 znak.
Soubor na path’ obsahuje kolonu (:) uprostřed řádku.
Soubor nebyl nalezen.
Uvedená trasa je neplatná, např. být na nezapsaném pohonu.
Soubor je již otevřen.
Soubor je zkorumpován.
Archive(String , String[]a[], ArchiveLoadOptions)
Začíná nový příklad třídy Aspose.Zip.Archive z multi-volume zip archivu a sestaví seznam vstupů, které lze extrahovat z archivu.
public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)
Parameters
mainSegment
string
Cesta do posledního segmentu multi-volumového archivu s centrálním adresářem.
Obvykle tento segment má *.zip rozšíření a menší než ostatn.
segmentsInOrder
string
[]a[]
Cesty do každého segmentu, ale poslední multi-volume zip archiv dodržování objednávky.
Obvykle jmenovali filename.z01, filename.z02, …, filename.z(n-1).
loadOptions
ArchiveLoadOptions
Možnosti stahování stávajících archiv.
Examples
Tento vzorek extrahuje do adresáře archiv tří segment.
using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
a.ExtractToDirectory("destination");
}
Exceptions
Nemůžete nahrávat hlavice ZIP, protože poskytnuté soubory jsou zkorumpovány.
Properties
Entries
Obdrží záznamy typu Aspose.Zip.ArchiveEntry tvořící archiv.
public ReadOnlyCollection<archiveentry> Entries { get; }
Hodnota nemovitosti
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Kompresní a šifrovací nastavení používané pro nově přidané položky Aspose.Zip.ArchiveEntry.
public ArchiveEntrySettings NewEntrySettings { get; }
Hodnota nemovitosti
Methods
CreateEntries(Úvodní stránka > Bool)
Do archivu přidejte všechny soubory a adresáře opakovaně v daném adresáři.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
Přihláška k kompresu.
includeRootDirectory
bool
Ukazuje, zda zahrnout samotný kořenový adresář nebo ne.
Returns
Archivy s sestavenými příspěvky.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
Cesta do adresy directory" je neplatná, např. být na bez mapovaného disku.
Volající nemá požadované povolení k přístupu k directory'.
CreateEntries(Stringová, boolová)
Do archivu přidejte všechny soubory a adresáře opakovaně v daném adresáři.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
Přihláška k kompresu.
includeRootDirectory
bool
Ukazuje, zda zahrnout samotný kořenový adresář nebo ne.
Returns
Archivy s sestavenými příspěvky.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntries("C:\folder");
archive.Save("folder.zip");
}
CreateEntry(string, string, bool, archivEntrySettings)
Vytvořte jediný vstup do archivu.
public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Název vstupu.
path
string
Plně kvalifikovaný název nového souboru nebo relativní název souboru, který bude komprimován.
openImmediately
bool
Je pravda, že pokud otevřete soubor okamžitě, jinak otevřete soubor na archivní úspory.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro přidání položky Aspose.Zip.ArchiveEntry.
Returns
Zip vstupní instance.
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
Vstupní název je nastaven pouze v rámci parametru. název souboru uvedený v parametru nemá vliv na vstupní název.
Pokud je soubor otevřen okamžitě s parametrem, blokuje se, dokud není archiv uložen.
Exceptions
path’ is null.
Zákazník nemá požadované povolení k přístupu.
code class=“paramref”>path’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.
Přístup k souboru path" je odmítnut.
Uvedený path", název souboru, nebo oba překračují maximální délku definovanou systémem. Například na platformách založených na Windows, trasy musí být méně než 248 znaků a názvy souboru musí být méně než 260 znak.
Soubor na path’ obsahuje kolonu (:) uprostřed řádku.
CreateEntry(String, Stream, ArchivEntrySettings)
Vytvořte jediný vstup do archivu.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Název vstupu.
source
Stream
Vstupní proud pro vstup.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro přidání položky Aspose.Zip.ArchiveEntry.
Returns
Zip vstupní instance.
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, ArchivEntrySettings)
Vytvořte jediný vstup do archivu.
public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Název vstupu.
fileInfo
FileInfo
Metadata souboru musí být komprimovány.
openImmediately
bool
Je pravda, že pokud otevřete soubor okamžitě, jinak otevřete soubor na archivní úspory.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro přidání položky Aspose.Zip.ArchiveEntry.
Returns
Zip vstupní instance.
Examples
Složte archiv s záznamy šifrované různými způsoby šifrování a hesla každ.
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
Vstupní název je nastaven pouze v rámci parametru. název souboru uvedený v parametru nemá vliv na vstupní název.
Pokud je soubor otevřen okamžitě s parametrem, blokuje se, dokud není archiv uložen.
Exceptions
fileInfo’ is read-only or is a directory.
Uvedená trasa je neplatná, např. být na nezapsaném pohonu.
Soubor je již otevřen.
CreateEntry(String, Stream, ArchivEntrySettings, FileSystemInfo)
Vytvořte jediný vstup do archivu.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
Název vstupu.
source
Stream
Vstupní proud pro vstup.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro přidání položky Aspose.Zip.ArchiveEntry.
fileInfo
FileSystemInfo
Metadata souboru nebo složky, které mají být komprimovány.
Returns
Zip vstupní instance.
Examples
Složte archiv s šifrovaným vstupem.
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
Vstupní název je nastaven pouze v rámci parametru. název souboru uvedený v parametru nemá vliv na vstupní název.
Můžete odkazovat na System.IO.DirectoryInfo, pokud je záznam adresář.
Exceptions
Obojí source’ a
fileInfo’ jsou null nebo
source’ je null a
fileInfo’ je pro adres.
CreateEntry(String, funkce , ArchivyEntrySettings)
Vytvořte jediný vstup do archivu.
public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
Název vstupu.
streamProvider
Func
<
Stream
>
Metoda poskytuje vstupní proud pro vstup.
newEntrySettings
ArchiveEntrySettings
Kompresní a šifrovací nastavení používané pro přidání položky Aspose.Zip.ArchiveEntry.
Returns
Zip vstupní instance.
Examples
Složte archiv s šifrovaným vstupem.
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
Tato metoda je pro .NET Framework 4.0 a vyšší a pro .NET Standard 2.0 verzi.
DeleteEntry(ArchiveEntry)
Odstraňuje první výskyt konkrétního vstupu z seznamu vstup.
public Archive DeleteEntry(ArchiveEntry entry)
Parameters
entry
ArchiveEntry
Vstup k odstranění z seznamu vstup.
Returns
Archiv s vstupem byl vymazán.
Examples
Zde je, jak můžete odstranit všechny příspěvky s výjimkou posledn:
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
Archiv je vymazán.
DeleteEntry(Int)
Odstraňuje vstup z seznamu vstupů indexem.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
Nulový index vstupu, který je třeba odstranit.
Returns
Archiv s vstupem byl vymazán.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Archiv je vymazán.
entryIndex’ is less than 0.-or-
entryIndex’ is equal to or greater than ‘Entries’ count.
Dispose()
Provádí aplikativně definované úkoly spojené s uvolňováním, uvolňováním nebo resetováním neupravených zdroj.
public void Dispose()
Dispose(Bolíček)
Provádí aplikativně definované úkoly spojené s uvolňováním, uvolňováním nebo resetováním neupravených zdroj.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
Je nutné zlikvidovat spravované zdroje.
ExtractToDirectory(Stringová)
Vytahuje všechny soubory v archivu do poskytnutého adresáře.
public void ExtractToDirectory(string destinationDirectory)
Parameters
destinationDirectory
string
Cesta do adresáře umístit extrahované soubory do.
Examples
using (var archive = new Archive("archive.zip"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
Pokud adresář neexistuje, bude vytvořen.
Exceptions
destinationDirectory’ is null.
Zadaná trasa, název souboru nebo obojí přesahuje maximální délku definovanou systémem. Například na platformách založených na Windows musí být trasa menší než 248 znaků a název souboru musí být menší než 260 znak.
Návštěvník nemá požadované povolení k přístupu k stávajícímu adresáři.
Pokud adresář neexistuje, trasa obsahuje znak kolonu (:) který není součástí označení disku (“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 (:).
dek určený cestou je soubor. -or- Název sítě není znám.
Nesprávné heslo bylo poskytnuto. - nebo - Archiv je zkorumpován.
Save(Stream, ArchívSaveOptions)
Ušetří archiv na poskytnutém toku.
public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)
Parameters
outputStream
Stream
Destinace v toku.
saveOptions
ArchiveSaveOptions
Možnosti pro archivní úspory.
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
Musí být psatelná.
Exceptions
outputStream’ is not writable.
Archiv je vymazán.
Save(String, ArchívSaveOptions)
Ušetří archiv na předloženém cílovém souboru.
public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)
Parameters
destinationFileName
string
Pokud specifikovaný název souboru ukazuje na existující soubor, bude přepisován.
saveOptions
ArchiveSaveOptions
Možnosti pro archivní úspory.
Examples
using (var archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.Save("archive.zip", new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}
Remarks
Je možné uložit archiv na stejnou cestu, jakou byl stažen z. Nicméně, to se nedoporučuje, protože tento přístup používá kopírování do dočasného souboru.
Exceptions
destinationFileName’ is null.
Zákazník nemá požadované povolení k přístupu.
code class=“paramref”>destinationFileName’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.
Přístup k souboru destinationFileName’ je odmítnut.
Uvedený destinationFileName’, název souboru, nebo oba překračují maximální délku definovanou systémem.Například na platformách založených na Windows, trasy musí být méně než 248 znaků a názvy souboru musí být méně než 260 znak.
Soubor na destinationFileName’ obsahuje kolonku (:) uprostřed řádku.
Soubor nebyl nalezen.
Uvedená trasa je neplatná, např. být na nezapsaném pohonu.
Soubor je již otevřen.
SaveSplit(String, SplitArchiveSaveOptions)
Ušetří multi-volume archiv do adresáře určených míst.
public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)
Parameters
destinationDirectory
string
Cesta k adresáři, kde budou vytvořeny archivní segmenty.
options
SplitArchiveSaveOptions
Možnosti pro ukládání archivu, včetně názvu souboru.
Examples
using (Archive archive = new Archive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitArchiveSaveOptions("volume", 65536));
}
Remarks
Tato metoda obsahuje několik () souborů filename.z01, filename.z02, …, filename.z(n-1), filename.zip.
Není možné vytvořit stávající archivní multi-volume.
Exceptions
Tento archiv byl otevřen z existujícího zdroje.
Tento archiv je komprimován metodou XZ a šifrovan.
destinationDirectory’ is null.
Návštěvník nemá požadované povolení k přístupu k adresáři.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Uvedená trasa překračuje maximální délku stanovenou systémem.
Archiv je vymazán.