Class Archive

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

object Archive

Implements

IArchive , IDisposable

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

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

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

ArgumentNullException

path’ is null.

SecurityException

Zákazník nemá požadované povolení k přístupu.

ArgumentException

code class=“paramref”>path’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path" je odmítnut.

PathTooLongException

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.

NotSupportedException

Soubor na path’ obsahuje kolonu (:) uprostřed řádku.

FileNotFoundException

Soubor nebyl nalezen.

DirectoryNotFoundException

Uvedená trasa je neplatná, např. být na nezapsaném pohonu.

IOException

Soubor je již otevřen.

InvalidDataException

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

EndOfStreamException

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

ArchiveEntrySettings

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

Archive

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

DirectoryNotFoundException

Cesta do adresy directory" je neplatná, např. být na bez mapovaného disku.

SecurityException

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

Archive

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

ArchiveEntry

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

ArgumentNullException

path’ is null.

SecurityException

Zákazník nemá požadované povolení k přístupu.

ArgumentException

code class=“paramref”>path’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path" je odmítnut.

PathTooLongException

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.

NotSupportedException

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

ArchiveEntry

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

ArchiveEntry

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

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Uvedená trasa je neplatná, např. být na nezapsaném pohonu.

IOException

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

ArchiveEntry

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

InvalidOperationException

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

ArchiveEntry

Zip vstupní instance.

Examples

Složte archiv s šifrovaným vstupem.

System.Func&lt;Stream&gt; 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

Archive

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 &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

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

Archive

Archiv s vstupem byl vymazán.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Archiv je vymazán.

ArgumentOutOfRangeException

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

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

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.

SecurityException

Návštěvník nemá požadované povolení k přístupu k stávajícímu adresáři.

NotSupportedException

Pokud adresář neexistuje, trasa obsahuje znak kolonu (:) který není součástí označení disku (“C:”).

ArgumentException

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 (:).

IOException

dek určený cestou je soubor. -or- Název sítě není znám.

InvalidDataException

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

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

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

ArgumentNullException

destinationFileName’ is null.

SecurityException

Zákazník nemá požadované povolení k přístupu.

ArgumentException

code class=“paramref”>destinationFileName’ je prázdný, obsahuje pouze bílé prostory, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru destinationFileName’ je odmítnut.

PathTooLongException

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.

NotSupportedException

Soubor na destinationFileName’ obsahuje kolonku (:) uprostřed řádku.

FileNotFoundException

Soubor nebyl nalezen.

DirectoryNotFoundException

Uvedená trasa je neplatná, např. být na nezapsaném pohonu.

IOException

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

InvalidOperationException

Tento archiv byl otevřen z existujícího zdroje.

NotSupportedException

Tento archiv je komprimován metodou XZ a šifrovan.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Návštěvník nemá požadované povolení k přístupu k adresáři.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Uvedená trasa překračuje maximální délku stanovenou systémem.

ObjectDisposedException

Archiv je vymazán.

 Čeština