Class SevenZipArchive

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

objectSevenZipArchive

Implementerar

IArchive, IDisposable

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

ArgumentException

sourceStream är inte sökbar.

ArgumentNullException

sourceStream är null.

NotImplementedException

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

ArgumentNullException

path är null.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst.

ArgumentException

path är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.

UnauthorizedAccessException

Åtkomst till fil path nekas.

PathTooLongException

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.

NotSupportedException

Fil vid path innehåller ett kolon (:) i mitten av strängen.

FileNotFoundException

Filens finns inte.

DirectoryNotFoundException

Den angivna sökvägen är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.

IOException

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

ArgumentNullException

parts är null.

ArgumentException

parts har inga poster.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst.

ArgumentException

Sökvägen till en fil är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.

UnauthorizedAccessException

Åtkomst till en fil nekas.

PathTooLongException

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.

NotSupportedException

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&gt;

NewEntrySettings

Komprimerings- och krypteringsinställningar som används för nyss tillagda Aspose.Zip.SevenZip.SevenZipArchiveEntry objekt.

public SevenZipEntrySettings NewEntrySettings { get; }

Egenskapsvärde

SevenZipEntrySettings

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

SevenZipArchive

Arkivet med sammansatta poster.

Exempel

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

Undantag

DirectoryNotFoundException

Sökvägen till directory är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.

SecurityException

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

SevenZipArchive

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

SevenZipArchiveEntry

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

UnauthorizedAccessException

fileInfo är skrivskyddad eller är en katalog.

DirectoryNotFoundException

Den angivna sökvägen är ogiltig, till exempel om den ligger på en icke-kartlagd enhet.

IOException

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

SevenZipArchiveEntry

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

InvalidOperationException

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

SevenZipArchiveEntry

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

SevenZipArchiveEntry

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

ArgumentNullException

path är null.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst.

ArgumentException

path är tom, innehåller endast vita tecken eller innehåller ogiltiga tecken.

UnauthorizedAccessException

Åtkomst till fil path nekas.

PathTooLongException

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.

NotSupportedException

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

ArgumentNullException

destinationDirectory är null.

PathTooLongException

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.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst till den befintliga katalogen.

NotSupportedException

Om katalogen inte finns, innehåller sökvägen ett kolon-tecken (:) som inte är en del av en enhetsbeteckning (“C:").

ArgumentException

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

IOException

Katalogen som anges av sökvägen är en fil. -eller- Det nätverksnamnet är inte känt.

InvalidDataException

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

ArgumentException

output stöder inte sökning.

ArgumentNullException

output är null.

InvalidOperationException

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

ArgumentNullException

destinationFileName är null.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst.

ArgumentException

destinationFileName är tom, innehåller endast vita tecken, eller innehåller ogiltiga tecken.

UnauthorizedAccessException

Åtkomst till fil destinationFileName nekas.

PathTooLongException

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.

NotSupportedException

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

InvalidOperationException

Detta arkiv öppnades från en befintlig källa.

ArgumentNullException

destinationDirectory är null.

SecurityException

Anroparen har inte den nödvändiga behörigheten för att få åtkomst till katalogen.

ArgumentException

destinationDirectory innehåller ogiltiga tecken som “, >, <, eller |.

PathTooLongException

Den angivna sökvägen överskrider den systemdefinierade maximala längden.

 Svenska