Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

Tato třída představuje soubor archivu 7z. Použijte ji k vytváření a extrakci archivů 7z.

public class SevenZipArchive : IArchive, IDisposable

Dědičnost

objectSevenZipArchive

Implementuje

IArchive, IDisposable

Děděné členy

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Konstruktor

SevenZipArchive(SevenZipEntrySettings)

Inicializuje novou instanci třídy Aspose.Zip.SevenZip.SevenZipArchive s volitelnými nastaveními pro její položky.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parametry

newEntrySettings SevenZipEntrySettings

Nastavení komprese a šifrování používaná pro nově přidané položky Aspose.Zip.SevenZip.SevenZipArchiveEntry. Pokud není uvedeno, použije se komprese LZMA bez šifrování.

Příklady

Následující příklad ukazuje, jak zkomprimovat jeden soubor s výchozími nastaveními: komprese LZMA bez šifrování.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Inicializuje novou instanci třídy Aspose.Zip.SevenZip.SevenZipArchive a sestavuje seznam položek, které mohou být extrahovány z archivu.

public SevenZipArchive(Stream sourceStream, string password = null)

Parametry

sourceStream Stream

Zdroj archivu.

password string

Volitelné heslo pro dešifrování. Pokud jsou názvy souborů zašifrovány, musí být přítomno.

Příklady

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Poznámky

Tento konstruktor neprovádí dekompresi žádné položky. Viz metoda Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) pro dekompresi.

Výjimky

ArgumentException

sourceStream není seekable.

ArgumentNullException

sourceStream je null.

NotImplementedException

Archiv obsahuje více než jedno kodér. Nyní je podporována pouze komprese LZMA.

SevenZipArchive(string, string)

Inicializuje novou instanci třídy Aspose.Zip.SevenZip.SevenZipArchive a sestavuje seznam položek, které mohou být extrahovány z archivu.

public SevenZipArchive(string path, string password = null)

Parametry

path string

Úplná cesta nebo relativní cesta k souboru archivu.

password string

Volitelné heslo pro dešifrování. Pokud jsou názvy souborů zašifrovány, musí být přítomno.

Příklady

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Poznámky

Tento konstruktor neprovádí dekompresi žádné položky. Viz metoda Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) pro dekompresi.

Výjimky

ArgumentNullException

path je null.

SecurityException

Volající nemá potřebné oprávnění pro přístup.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

Uvedená path, název souboru, nebo obojí překračují maximální délku definovanou systémem. Například, na platformách založených na Windows, cesty musí být kratší než 248 znaků a názvy souborů musí být kratší než 260 znaků.

NotSupportedException

Soubor na path obsahuje dvojtečku (:) uprostřed řetězce.

FileNotFoundException

Soubor nebyl nalezen.

DirectoryNotFoundException

Uvedená cesta je neplatná, jako například být na nepřiřazeném disku.

IOException

Soubor je již otevřen.

SevenZipArchive(string[], string)

Inicializuje novou instanci třídy Aspose.Zip.SevenZip.SevenZipArchive z víceobjemového archivu 7z a sestavuje seznam položek, které mohou být extrahovány z archivu.

public SevenZipArchive(string[] parts, string password = null)

Parametry

parts string[]

Cesty k jednotlivým segmentům víceobjemového archivu 7z v příslušném pořadí.

password string

Volitelné heslo pro dešifrování. Pokud jsou názvy souborů zašifrovány, musí být přítomno.

Příklady

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

Výjimky

ArgumentNullException

parts je null.

ArgumentException

parts nemá žádné položky.

SecurityException

Volající nemá potřebné oprávnění pro přístup.

ArgumentException

Cesta k souboru je prázdná, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru je odepřen.

PathTooLongException

Uvedená cesta k části, název souboru, nebo obojí překračují maximální délku definovanou systémem. Například, na platformách založených na Windows, cesty musí být kratší než 248 znaků a názvy souborů musí být kratší než 260 znaků.

NotSupportedException

Soubor na cestě obsahuje dvojtečku (:) uprostřed řetězce.

Vlastnosti

Entries

Získá položky typu Aspose.Zip.SevenZip.SevenZipArchiveEntry, které tvoří archiv.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Hodnota vlastnosti

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Nastavení komprese a šifrování používaná pro nově přidané položky Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Hodnota vlastnosti

SevenZipEntrySettings

Metody

CreateEntries(DirectoryInfo, bool)

Přidá do archivu všechny soubory a adresáře rekurzivně ve zadaném adresáři.

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parametry

directory DirectoryInfo

Adresář k zkomprimování.

includeRootDirectory bool

Určuje, zda zahrnout kořenový adresář samotný nebo ne.

Vrací

SevenZipArchive

Archiv se sestavenými položkami.

Příklady

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Výjimky

DirectoryNotFoundException

Cesta k directory je neplatná, jako například být na nepřiřazeném disku.

SecurityException

Volající nemá potřebné oprávnění pro přístup k directory.

CreateEntries(string, bool)

Přidá do archivu všechny soubory a adresáře rekurzivně ve zadaném adresáři.

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parametry

sourceDirectory string

Adresář k zkomprimování.

includeRootDirectory bool

Určuje, zda zahrnout kořenový adresář samotný nebo ne.

Vrací

SevenZipArchive

Archiv se sestavenými položkami.

Příklady

Sestavte archiv 7z s kompresí LZMA2.

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Vytvoří jednotlivou položku v archivu.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parametry

name string

Název položky.

fileInfo FileInfo

Metadata souboru, který má být zkomprimován.

openImmediately bool

Pravda, pokud otevřít soubor okamžitě, jinak otevřít soubor při ukládání archivu.

newEntrySettings SevenZipEntrySettings

Nastavení komprese a šifrování používaná pro přidanou položku Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Vrací

SevenZipArchiveEntry

Instance položky Seven Zip.

Příklady

Sestavte archiv s položkami šifrovanými různými hesly.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Poznámky

Název položky je nastaven pouze v parametru name. Název souboru uvedený v parametru fileInfo nemá vliv na název položky.

Pokud je soubor okamžitě otevřen s parametrem openImmediately, zůstane zablokován, dokud nebude archiv uložen.

Výjimky

UnauthorizedAccessException

fileInfo je pouze pro čtení nebo je adresář.

DirectoryNotFoundException

Uvedená cesta je neplatná, jako například být na nepřiřazeném disku.

IOException

Soubor je již otevřen.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Vytvoří jednotlivou položku v archivu.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parametry

name string

Název položky.

source Stream

Vstupní proud pro položku.

newEntrySettings SevenZipEntrySettings

Nastavení komprese a šifrování používaná pro přidanou položku Aspose.Zip.SevenZip.SevenZipArchiveEntry.

fileInfo FileSystemInfo

Metadata souboru nebo složky, které mají být zkomprimovány.

Vrací

SevenZipArchiveEntry

Instance položky SevenZip.

Příklady

Sestavte archiv s položkou šifrovanou pomocí LZMA2.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

Poznámky

Název položky je nastaven pouze v parametru name. Název souboru uvedený v parametru fileInfo nemá vliv na název položky.

fileInfo může odkazovat na System.IO.DirectoryInfo, pokud je položka adresář.

Výjimky

InvalidOperationException

Obě source a fileInfo jsou null nebo source je null a fileInfo představuje adresář.

CreateEntry(string, Stream, SevenZipEntrySettings)

Vytvoří jednotlivou položku v archivu.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

Parametry

name string

Název položky.

source Stream

Vstupní proud pro položku.

newEntrySettings SevenZipEntrySettings

Nastavení komprese a šifrování používaná pro přidanou položku Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Vrací

SevenZipArchiveEntry

Instance položky Zip.

Příklady

Sestavte archiv 7z s kompresí LZMA2 a šifrováním všech položek.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

Vytvoří jednotlivou položku v archivu.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

Parametry

name string

Název položky.

path string

Úplný název nového souboru, nebo relativní název souboru, který má být zkomprimován.

openImmediately bool

Pravda, pokud otevřít soubor okamžitě, jinak otevřít soubor při ukládání archivu.

newEntrySettings SevenZipEntrySettings

Nastavení komprese a šifrování používaná pro přidanou položku Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Vrací

SevenZipArchiveEntry

Instance položky Zip.

Příklady

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Poznámky

Název položky je nastaven pouze v parametru name. Název souboru uvedený v parametru path nemá vliv na název položky.

Pokud je soubor okamžitě otevřen s parametrem openImmediately, zůstane zablokován, dokud nebude archiv uložen.

Výjimky

ArgumentNullException

path je null.

SecurityException

Volající nemá potřebné oprávnění pro přístup.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

Uvedená path, název souboru, nebo obojí překračují maximální délku definovanou systémem. Například, na platformách založených na Windows, cesty musí být kratší než 248 znaků a názvy souborů musí být kratší než 260 znaků.

NotSupportedException

Soubor na path obsahuje dvojtečku (:) uprostřed řetězce.

Dispose()

Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.

public void Dispose()

Dispose(bool)

Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.

protected virtual void Dispose(bool disposing)

Parametry

disposing bool

Zda by měly být uvolněny řízené prostředky.

ExtractToDirectory(string, string)

Extrahuje všechny soubory v archivu do zadaného adresáře.

public void ExtractToDirectory(string destinationDirectory, string password = null)

Parametry

destinationDirectory string

Cesta k adresáři, do kterého budou umístěny extrahované soubory.

password string

Volitelné heslo pro dešifrování obsahu.

Příklady

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Poznámky

Pokud adresář neexistuje, bude vytvořen.

password se používá pouze pro dešifrování obsahu. Pokud jsou názvy souborů zašifrovány, poskytněte heslo v konstruktoru Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) nebo Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

Výjimky

ArgumentNullException

destinationDirectory je null.

PathTooLongException

Uvedená cesta, název souboru, nebo obojí překračují maximální délku definovanou systémem. Například, na platformách založených na Windows, cesty musí být kratší než 248 znaků a názvy souborů musí být kratší než 260 znaků.

SecurityException

Volající nemá potřebné oprávnění pro přístup k existujícímu adresáři.

NotSupportedException

Pokud adresář neexistuje, cesta obsahuje znak dvojtečky (:) který není součástí popisku disku (“C:").

ArgumentException

destinationDirectory je řetězec s nulovou délkou, obsahuje pouze bílé znaky, nebo obsahuje jeden nebo více neplatných znaků. Neplatné znaky můžete zjistit pomocí metody System.IO.Path.GetInvalidPathChars. -nebo- cesta je předřazena nebo obsahuje pouze znak dvojtečky (:).

IOException

Adresář určený cestou je soubor. -nebo- Síťový název není znám.

InvalidDataException

Archiv je poškozen.

Save(Stream)

Uloží archiv 7z do zadaného proudu.

public void Save(Stream output)

Parametry

output Stream

Cílový proud.

Příklady

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

Poznámky

output musí být seekable.

Výjimky

ArgumentException

output nepodporuje seek.

ArgumentNullException

output je null.

InvalidOperationException

Kódovač se nezdařil při kompresi dat.

Save(string)

Uloží archiv do určeného souboru.

public void Save(string destinationFileName)

Parametry

destinationFileName string

Cesta archivu, který má být vytvořen. Pokud určený název souboru odkazuje na existující soubor, bude přepsán.

Příklady

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

Poznámky

Je možné uložit archiv na stejnou cestu, ze které byl načten. Nicméně, to se nedoporučuje, protože tento přístup používá kopírování do dočasného souboru.

Výjimky

ArgumentNullException

destinationFileName je null.

SecurityException

Volající nemá potřebné oprávnění pro přístup.

ArgumentException

destinationFileName je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru destinationFileName je odepřen.

PathTooLongException

Uvedená destinationFileName, název souboru, nebo obojí překračují maximální délku definovanou systémem. Například, na platformách založených na Windows, cesty musí být kratší než 248 znaků a názvy souborů musí být kratší než 260 znaků.

NotSupportedException

Soubor na destinationFileName obsahuje dvojtečku (:) uprostřed řetězce.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Uloží víceobjemový archiv do určeného adresáře.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parametry

destinationDirectory string

Cesta k adresáři, ve kterém budou vytvořeny segmenty archivu.

options SplitSevenZipArchiveSaveOptions

Možnosti pro ukládání archivu, včetně názvu souboru.

Příklady

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitSevenZipArchiveSaveOptions("volume", 65536));
}

Poznámky

Tato metoda sestavuje několik (n) souborů filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Není možné vytvořit víceobjemový archiv z existujícího archivu.

Výjimky

InvalidOperationException

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

ArgumentNullException

destinationDirectory je null.

SecurityException

Volající nemá potřebné oprávnění pro přístup k adresáři.

ArgumentException

destinationDirectory obsahuje neplatné znaky, jako jsou “, >, <, nebo |.

PathTooLongException

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

 Čeština