Class SevenZipArchive

Class SevenZipArchive

Nazwa przestrzeń: Aspose.Zip.SevenZip Zestawienie: Aspose.Zip.dll (25.5.0)

Ta klasa reprezentuje plik archiwów 7z. Użyj go do tworzenia i ekstrakcji archiwów 7z.

public class SevenZipArchive : IArchive, IDisposable

Inheritance

object SevenZipArchive

Implements

IArchive , IDisposable

Dziedziczeni członkowie

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

Constructors

SevenZipArchive(SevenZipEntrySettings)

Inicjalizuje nową instancję klasy Aspose.Zip.SevenZip.SevenZipArchive z opcjonalnymi ustawieniami dla jej wpisów.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Parameters

newEntrySettings SevenZipEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.SevenZip.SevenZipArchiveEntry.Jeśli nie określono, LZMA kompresja bez szyfrowania byłoby używane.

Examples

Poniższy przykład pokazuje, jak kompresować pojedynczy plik za pomocą ustawień domyślnych: Kompresja LZMA bez szyfrowania.

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

SevenZipArchive(strumień, strumień)

Inicjalizuje nową instancję klasy Aspose.Zip.SevenZip.SevenZipArchive i tworzy listę wpisów, które można wyciągnąć z archiwum.

public SevenZipArchive(Stream sourceStream, string password = null)

Parameters

sourceStream Stream

Źródło tego archiwum.

password string

Opcjonalne hasło do szyfrowania.Jeśli nazwy plików są szyfrowane, musi być obecne.

Examples

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

Remarks

Zobacz Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) metoda dekompresji.

Exceptions

ArgumentException

sourceStream’ is not seekable.

ArgumentNullException

sourceStream’ is null.

NotImplementedException

Archiwum zawiera więcej niż jeden koder. teraz tylko LZMA kompresja jest obsługiwana.

SevenZipArchive(strumień, strumień)

Inicjalizuje nową instancję klasy Aspose.Zip.SevenZip.SevenZipArchive i tworzy listę wpisów, które można wyciągnąć z archiwum.

public SevenZipArchive(string path, string password = null)

Parameters

path string

Całkowicie kwalifikowany lub relatywny ścieżka do pliku archiwum.

password string

Opcjonalne hasło do szyfrowania.Jeśli nazwy plików są szyfrowane, musi być obecne.

Examples

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

Remarks

Zobacz Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) metoda dekompresji.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

FileNotFoundException

Plik nie został znaleziony.

DirectoryNotFoundException

Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.

IOException

Archiwum jest już otwarte.

SevenZipArchive(strumień[ ], Źródło String)

Inicjalizuje nową instancję klasy Aspose.Zip.SevenZip.SevenZipArchive z archiwum multi-volume 7z i tworzy listę wpisów, które można wyciągnąć z archiwum.

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

Parameters

parts string [ ]

Ścieżki do każdego segmentu multi-volume 7z archiwum przestrzegania porządku

password string

Opcjonalne hasło do szyfrowania.Jeśli nazwy plików są szyfrowane, musi być obecne.

Examples

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

Exceptions

ArgumentNullException

parts’ is null.

ArgumentException

parts’ has no entries.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Droga do pliku jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku jest odrzucony.

PathTooLongException

Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik na ścieżce zawiera kolumnę (:) w środku łańcucha.

Properties

Entries

Otrzymuje wpisy typu Aspose.Zip.SevenZip.SevenZipArchiveEntry tworzącego archiwum.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Wartość nieruchomości

ReadOnlyCollection • < SevenZipArchiveEntry >

NewEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Wartość nieruchomości

SevenZipEntrySettings

Methods

CreateEntries(Informacje, Bool)

Dodaj do archiwum wszystkie pliki i katalogi ponownie w danym katalogu.

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

Parameters

directory DirectoryInfo

Dyrekcja do kompresji.

includeRootDirectory bool

Oznacza, czy należy włączyć sam katalog korzeniowy, czy nie.

Returns

SevenZipArchive

Archiwum z składanymi wpisami.

Examples

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

Exceptions

DirectoryNotFoundException

Droga do directory’ jest niewłaściwa, na przykład na bez mapowania dysku.

SecurityException

Odwołujący nie ma wymaganej zgody na dostęp do adresatu directory".

CreateEntries(Złoty, Bool)

Dodaj do archiwum wszystkie pliki i katalogi ponownie w danym katalogu.

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

Parameters

sourceDirectory string

Dyrekcja do kompresji.

includeRootDirectory bool

Oznacza, czy należy włączyć sam katalog korzeniowy, czy nie.

Returns

SevenZipArchive

Archiwum z składanymi wpisami.

Examples

Składaj archiwum 7z za pomocą kompresji LZMA2.

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

CreateEntry(strona, FileInfo, bool, SevenZipEntrySettings)

Tworzenie jednego wpisu w archiwum.

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

Parameters

name string

Nazwa wejścia.

fileInfo FileInfo

Metadane pliki muszą być kompresowane.

openImmediately bool

Prawda jest taka, że jeśli natychmiast otworzysz plik, w przeciwnym razie otwórz plik na archiwum.

newEntrySettings SevenZipEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

Siedem wstępnych instancji ZIP.

Examples

Składaj archiwum z wpisami zaszyfrowanymi różnymi hasłami.

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);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

Jeśli plik zostanie natychmiast otwarty z parametrem, zostanie on zablokowany, dopóki nie zostanie zapisany archiwum.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.

IOException

Archiwum jest już otwarte.

CreateEntry(strumień, Stream, SevenZipEntrySettings, FileSystemInfo)

Tworzenie jednego wpisu w archiwum.

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

Parameters

name string

Nazwa wejścia.

source Stream

Przepływ wejściowy dla wejścia.

newEntrySettings SevenZipEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.SevenZip.SevenZipArchiveEntry.

fileInfo FileSystemInfo

Metadane plików lub folderów do kompresji.

Returns

SevenZipArchiveEntry

Siedmiu punktów wstępu.

Examples

Kompostować archiwum z LZMA2 kompresowane szyfrowane wejście.

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);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

można odwołać się do System.IO.DirectoryInfo, jeśli wpis jest adresem.

Exceptions

InvalidOperationException

Zarówno source’ jak i fileInfo’ są null lub source’ jest null, a fileInfo’ oznacza katalog.

CreateEntry(strumień, strumień, SevenZipEntrySettings)

Tworzenie jednego wpisu w archiwum.

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

Parameters

name string

Nazwa wejścia.

source Stream

Przepływ wejściowy dla wejścia.

newEntrySettings SevenZipEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

Instancja wejściowa ZIP.

Examples

Składaj archiwum 7z za pomocą kompresji i szyfrowania wszystkich wpisów LZMA2.

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(strona, strona, bool, SevenZipEntrySettings)

Tworzenie jednego wpisu w archiwum.

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

Parameters

name string

Nazwa wejścia.

path string

Pełno kwalifikowane nazwisko nowego pliku lub relatywne nazwisko pliku do kompresji.

openImmediately bool

Prawda jest taka, że jeśli natychmiast otworzysz plik, w przeciwnym razie otwórz plik na archiwum.

newEntrySettings SevenZipEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Returns

SevenZipArchiveEntry

Instancja wejściowa ZIP.

Examples

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);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

Jeśli plik zostanie natychmiast otwarty z parametrem, zostanie on zablokowany, dopóki nie zostanie zapisany archiwum.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

Dispose()

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

public void Dispose()

Dispose(Bool)

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Czy zarządzane zasoby powinny zostać usunięte?

ExtractToDirectory(strumień, strumień)

Wyciąga wszystkie pliki w archiwum do dostarczonego katalogu.

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

Parameters

destinationDirectory string

Droga do katalogu, aby umieścić wyciągnięte pliki.

password string

Opcjonalne hasło do dekrypcji treści.

Examples

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

Remarks

Jeśli dyrektywa nie istnieje, zostanie ona utworzona.

Jeśli nazwiska plików są szyfrowane, podaj hasło w Aspose.Zip.SevenZop.SevenZapArchive.#ctor(System.String,Systems. String) lub __ WL51.ZIP.seven Zip Archiv.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

SecurityException

Odwołujący nie posiada wymaganej pozwolenia na dostęp do istniejącego katalogu.

NotSupportedException

Jeśli dyrektywa nie istnieje, ścieżka zawiera znak kolumny (:) który nie jest częścią etykiety napędu (“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

Dyskusja określona przez ścieżkę jest plikiem. -or- Nazwa sieci nie jest znana.

InvalidDataException

Archiwum jest zepsute.

Save(Stream)

Oszczędza archiwum 7z do dostarczonego przepływu.

public void Save(Stream output)

Parameters

output Stream

Przepływ docelowy.

Examples

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);
    }
  }
}

Remarks

Musi być poszukiwana.

Exceptions

ArgumentException

output’ does not support seeking.

ArgumentNullException

output’ is null.

InvalidOperationException

Koder nie zdołał kompresować danych.

Save(strumień)

Zapisz archiwum do dostarczonego pliku docelowego.

public void Save(string destinationFileName)

Parameters

destinationFileName string

Jeśli określona nazwa pliku wskazuje na istniejący plik, zostanie on przesłany.

Examples

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");
   }
}

Remarks

Istnieje możliwość przechowywania archiwum na tę samą ścieżkę, z której został pobrany. jednak nie jest to zalecane, ponieważ ten podejście wykorzystuje kopiowanie do tymczasowego pliku.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

destinationFileName’ jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku destinationFileName’ jest odrzucony.

PathTooLongException

Określenie destinationFileName’, nazwa pliku, lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w adresie destinationFileName’ zawiera kolumnę (:) w środku paska.

SaveSplit(Źródło: SplitSevenZipArchiveSaveOptions)

Oszczędza archiwum wielkości do dostarczonego katalogu docelowego.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Parameters

destinationDirectory string

Droga do katalogu, w którym zostaną utworzone segmenty archiwum.

options SplitSevenZipArchiveSaveOptions

Opcje przechowywania archiwów, w tym nazwa pliku.

Examples

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

Remarks

Metoda ta składa się z kilku plików filename.7z.001, filename.7z.002, …, filename.7z.(n).

Nie można tworzyć istniejących archiwów wielokrotnych.

Exceptions

InvalidOperationException

Archiwum zostało otwarte z istniejącego źródła.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Odwołujący nie posiada wymaganej pozwolenia na dostęp do katalogu.

ArgumentException

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

PathTooLongException

Określona droga przekracza maksymalną długość określoną przez system.

 Polski