Class SevenZipArchive
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Den här klassen representerar en 7z arkivfil. Använd den för att komprimera och extrahera 7z arkiv.
public class SevenZipArchive : IArchive, IDisposable
Arv
Implementerar
Arvade medlemmar
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Konstruktörer
SevenZipArchive(SevenZipEntrySettings)
Initierar en ny instans av Aspose.Zip.SevenZip.SevenZipArchive-klassen med valfria inställningar för dess poster.
public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)
Parametrar
newEntrySettings
SevenZipEntrySettings
Komprimerings- och krypteringsinställningar som används för nyss tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry objekt. Om det inte anges, används LZMA-komprimering utan kryptering.
Exempel
Följande exempel visar hur man komprimerar en enda fil med standardinställningar: LZMA-komprimering utan kryptering.
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)
Initierar en ny instans av Aspose.Zip.SevenZip.SevenZipArchive-klassen och komponerar en lista över poster som kan extraheras från arkivet.
public SevenZipArchive(Stream sourceStream, string password = null)
Parametrar
sourceStream
Stream
Källan till arkivet.
password
string
Valfritt lösenord för dekryptering. Om filnamn är krypterade måste det finnas.
Exempel
using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
archive.ExtractToDirectory("C:\\extracted");
}
Kommentarer
Denna konstruktor dekomprimerar ingen post. Se metoden Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) för dekomprimering.
Undantag
sourceStream
är inte sökbar.
sourceStream
är null.
Arkivet innehåller mer än en kodare. För närvarande stöds endast LZMA-komprimering.
SevenZipArchive(string, string)
Initierar en ny instans av Aspose.Zip.SevenZip.SevenZipArchive-klassen och komponerar en lista över poster som kan extraheras från arkivet.
public SevenZipArchive(string path, string password = null)
Parametrar
path
string
Den fullständiga eller relativa sökvägen till arkivfilen.
password
string
Valfritt lösenord för dekryptering. Om filnamn är krypterade måste det finnas.
Exempel
using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\\extracted");
}
Kommentarer
Denna konstruktor dekomprimerar ingen post. Se metoden Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) för dekomprimering.
Undantag
path
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
path
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil path
nekas.
Den angivna path
, filnamnet, eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.
Fil vid path
innehåller ett kolon (:) i mitten av strängen.
Filens finns inte.
Den angivna sökvägen är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.
Filens är redan öppen.
SevenZipArchive(string[], string)
Initierar en ny instans av Aspose.Zip.SevenZip.SevenZipArchive-klassen från ett flervolyms 7z-arkiv och komponerar en lista över poster som kan extraheras från arkivet.
public SevenZipArchive(string[] parts, string password = null)
Parametrar
parts
string[]
Sökvägar till varje segment av flervolyms 7z-arkiv i rätt ordning.
password
string
Valfritt lösenord för dekryptering. Om filnamn är krypterade måste det finnas.
Exempel
using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
archive.ExtractToDirectory("C:\\extracted");
}
Undantag
parts
är null.
parts
har inga poster.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
Sökvägen till en fil är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till en fil nekas.
Den angivna sökvägen till en del, filnamnet, eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.
Fil vid sökvägen innehåller ett kolon (:) i mitten av strängen.
Egenskaper
Entries
Hämtar poster av typen Aspose.Zip.SevenZip.SevenZipArchiveEntry som utgör arkivet.
public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }
Egenskapsvärde
ReadOnlyCollection<SevenZipArchiveEntry>
NewEntrySettings
Komprimerings- och krypteringsinställningar som används för nyss tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry objekt.
public SevenZipEntrySettings NewEntrySettings { get; }
Egenskapsvärde
Metoder
CreateEntries(DirectoryInfo, bool)
Lägger till alla filer och kataloger rekursivt i den angivna katalogen till arkivet.
public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parametrar
directory
DirectoryInfo
Katalog att komprimera.
includeRootDirectory
bool
Anger om den överordnade katalogen själv ska inkluderas eller inte.
Returer
Arkivet med sammansatta poster.
Exempel
using (SevenZipArchive archive = new SevenZipArchive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.7z");
}
Undantag
Sökvägen till directory
är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst till directory
.
CreateEntries(string, bool)
Lägger till alla filer och kataloger rekursivt i den angivna katalogen till arkivet.
public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parametrar
sourceDirectory
string
Katalog att komprimera.
includeRootDirectory
bool
Anger om den överordnade katalogen själv ska inkluderas eller inte.
Returer
Arkivet med sammansatta poster.
Exempel
Komponera 7z-arkiv med LZMA2-komprimering.
using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
archive.CreateEntries("C:\folder");
archive.Save("folder.7z");
}
CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)
Skapa en enskild post inom arkivet.
public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parametrar
name
string
Namnet på posten.
fileInfo
FileInfo
Metadata för filen som ska komprimeras.
openImmediately
bool
Sant om filen ska öppnas omedelbart, annars öppnas filen vid arkivets sparande.
newEntrySettings
SevenZipEntrySettings
Komprimerings- och krypteringsinställningar som används för den tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry-posten.
Returer
Seven Zip-posten instans.
Exempel
Komponera arkiv med poster som är krypterade med olika lösenord.
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);
}
}
Kommentarer
Postens namn sätts endast inom name
parametern. Filnamnet som anges i fileInfo
parametern påverkar inte postens namn.
Om filen öppnas omedelbart med openImmediately
parametern blir den blockerad tills arkivet sparas.
Undantag
fileInfo
är skrivskyddad eller är en katalog.
Den angivna sökvägen är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.
Filens är redan öppen.
CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)
Skapa en enskild post inom arkivet.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parametrar
name
string
Namnet på posten.
source
Stream
Indataflödet för posten.
newEntrySettings
SevenZipEntrySettings
Komprimerings- och krypteringsinställningar som används för den tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry-posten.
fileInfo
FileSystemInfo
Metadata för filen eller mappen som ska komprimeras.
Returer
SevenZip-posten instans.
Exempel
Komponera arkiv med LZMA2-komprimerad krypterad post.
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);
}
}
Kommentarer
Postens namn sätts endast inom name
parametern. Filnamnet som anges i fileInfo
parametern påverkar inte postens namn.
fileInfo
kan referera till System.IO.DirectoryInfo om posten är en katalog.
Undantag
Både source
och fileInfo
är null eller source
är null och fileInfo
står för en katalog.
CreateEntry(string, Stream, SevenZipEntrySettings)
Skapa en enskild post inom arkivet.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)
Parametrar
name
string
Namnet på posten.
source
Stream
Indataflödet för posten.
newEntrySettings
SevenZipEntrySettings
Komprimerings- och krypteringsinställningar som används för den tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry-posten.
Returer
Zip-posten instans.
Exempel
Komponera 7z-arkiv med LZMA2-komprimering och kryptering av alla poster.
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)
Skapa en enskild post inom arkivet.
public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parametrar
name
string
Namnet på posten.
path
string
Det fullständiga namnet på den nya filen, eller det relativa filnamnet som ska komprimeras.
openImmediately
bool
Sant om filen ska öppnas omedelbart, annars öppnas filen vid arkivets sparande.
newEntrySettings
SevenZipEntrySettings
Komprimerings- och krypteringsinställningar som används för den tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry-posten.
Returer
Zip-posten instans.
Exempel
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);
}
}
Kommentarer
Postens namn sätts endast inom name
parametern. Filnamnet som anges i path
parametern påverkar inte postens namn.
Om filen öppnas omedelbart med openImmediately
parametern blir den blockerad tills arkivet sparas.
Undantag
path
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
path
är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.
Åtkomst till fil path
nekas.
Den angivna path
, filnamnet, eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.
Fil vid path
innehåller ett kolon (:) i mitten av strängen.
Dispose()
Utför applikationsdefinierade uppgifter kopplade till att frigöra, släppa eller återställa obearbetade resurser.
public void Dispose()
Dispose(bool)
Utför applikationsdefinierade uppgifter kopplade till att frigöra, släppa eller återställa obearbetade resurser.
protected virtual void Dispose(bool disposing)
Parametrar
disposing
bool
Om hanterade resurser ska frigöras.
ExtractToDirectory(string, string)
Extraherar alla filer i arkivet till den angivna katalogen.
public void ExtractToDirectory(string destinationDirectory, string password = null)
Parametrar
destinationDirectory
string
Sökvägen till katalogen där de extraherade filerna ska placeras.
password
string
Valfritt lösenord för dekryptering av innehållet.
Exempel
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\extracted");
}
Kommentarer
Om katalogen inte finns kommer den att skapas.
password
används endast för dekryptering av innehållet. Om filnamn är krypterade ange lösenordet i Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) eller Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String) konstruktorn.
Undantag
destinationDirectory
är null.
Den angivna sökvägen, filnamnet, eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken och filnamn måste vara mindre än 260 tecken.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst till den befintliga katalogen.
Om katalogen inte finns, innehåller sökvägen ett kolon-tecken (:) som inte är en del av en enhetsbeteckning (“C:").
destinationDirectory
är en sträng med noll längd, innehåller endast vita tecken, eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken genom att använda metoden System.IO.Path.GetInvalidPathChars. -eller- sökvägen är förkortad med, eller innehåller, endast ett kolon-tecken (:).
Katalogen som anges av sökvägen är en fil. -eller- Det nätverksnamnet är inte känt.
Arkivet är skadat.
Save(Stream)
Sparar 7z-arkivet till den angivna strömmen.
public void Save(Stream output)
Parametrar
output
Stream
Målström.
Exempel
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);
}
}
}
Kommentarer
output
måste vara sökbar.
Undantag
output
stöder inte sökning.
output
är null.
Kodaren misslyckades med att komprimera data.
Save(string)
Sparar arkivet till den angivna destinationsfilen.
public void Save(string destinationFileName)
Parametrar
destinationFileName
string
Sökvägen till arkivet som ska skapas. Om det angivna filnamnet pekar på en befintlig fil, kommer den att skrivas över.
Exempel
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");
}
}
Kommentarer
Det är möjligt att spara ett arkiv till samma sökväg som det laddades från. Men detta rekommenderas inte eftersom detta tillvägagångssätt använder kopiering till temporär fil.
Undantag
destinationFileName
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst.
destinationFileName
är tom, innehåller endast vita tecken, eller innehåller ogiltiga tecken.
Åtkomst till fil destinationFileName
nekas.
Den angivna destinationFileName
, filnamnet, eller båda överskrider den systemdefinierade maximala längden. Till exempel, på Windows-baserade plattformar måste sökvägar vara mindre än 248 tecken, och filnamn måste vara mindre än 260 tecken.
Fil vid destinationFileName
innehåller ett kolon (:) i mitten av strängen.
SaveSplit(string, SplitSevenZipArchiveSaveOptions)
Sparar flervolymsarkiv till den angivna destinationskatalogen.
public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)
Parametrar
destinationDirectory
string
Sökvägen till katalogen där arkivsegment ska skapas.
options
SplitSevenZipArchiveSaveOptions
Alternativ för arkivsparande, inklusive filnamn.
Exempel
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitSevenZipArchiveSaveOptions("volume", 65536));
}
Kommentarer
Denna metod komponerar flera (n
) filer filename.7z.001, filename.7z.002, ..., filename.7z.(n).
Kan inte göra existerande arkiv flervolyms.
Undantag
Detta arkiv öppnades från en befintlig källa.
destinationDirectory
är null.
Anroparen har inte den nödvändiga behörigheten för att få åtkomst till katalogen.
destinationDirectory
innehåller ogiltiga tecken som “, >, <, eller |.
Den angivna sökvägen överskrider den systemdefinierade maximala längden.