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
Implementuje
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
sourceStream
není seekable.
sourceStream
je null.
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
path
je null.
Volající nemá potřebné oprávnění pro přístup.
path
je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
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ů.
Soubor na path
obsahuje dvojtečku (:) uprostřed řetězce.
Soubor nebyl nalezen.
Uvedená cesta je neplatná, jako například být na nepřiřazeném disku.
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
parts
je null.
parts
nemá žádné položky.
Volající nemá potřebné oprávnění pro přístup.
Cesta k souboru je prázdná, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.
Přístup k souboru je odepřen.
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ů.
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>
NewEntrySettings
Nastavení komprese a šifrování používaná pro nově přidané položky Aspose.Zip.SevenZip.SevenZipArchiveEntry.
public SevenZipEntrySettings NewEntrySettings { get; }
Hodnota vlastnosti
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í
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
Cesta k directory
je neplatná, jako například být na nepřiřazeném disku.
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í
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í
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
fileInfo
je pouze pro čtení nebo je adresář.
Uvedená cesta je neplatná, jako například být na nepřiřazeném disku.
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í
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
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í
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í
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
path
je null.
Volající nemá potřebné oprávnění pro přístup.
path
je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
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ů.
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
destinationDirectory
je null.
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ů.
Volající nemá potřebné oprávnění pro přístup k existujícímu adresáři.
Pokud adresář neexistuje, cesta obsahuje znak dvojtečky (:) který není součástí popisku disku (“C:").
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 (:).
Adresář určený cestou je soubor. -nebo- Síťový název není znám.
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
output
nepodporuje seek.
output
je null.
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
destinationFileName
je null.
Volající nemá potřebné oprávnění pro přístup.
destinationFileName
je prázdný, obsahuje pouze bílé znaky, nebo obsahuje neplatné znaky.
Přístup k souboru destinationFileName
je odepřen.
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ů.
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
Tento archiv byl otevřen z existujícího zdroje.
destinationDirectory
je null.
Volající nemá potřebné oprávnění pro přístup k adresáři.
destinationDirectory
obsahuje neplatné znaky, jako jsou “, >, <, nebo |.
Uvedená cesta překračuje maximální délku definovanou systémem.