Class SevenZipArchive

Class SevenZipArchive

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

Цей клас представляє файл архіву 7z. Використовуйте його для створення та витягування архівів 7z.

public class SevenZipArchive : IArchive, IDisposable

Спадкування

objectSevenZipArchive

Реалізує

IArchive, IDisposable

Спадковані члени

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

Конструктори

SevenZipArchive(SevenZipEntrySettings)

Ініціалізує новий екземпляр класу Aspose.Zip.SevenZip.SevenZipArchive з необов’язковими налаштуваннями для його елементів.

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

Параметри

newEntrySettings SevenZipEntrySettings

Налаштування стиснення та шифрування, які використовуються для нових елементів Aspose.Zip.SevenZip.SevenZipArchiveEntry. Якщо не вказано, буде використано стиснення LZMA без шифрування.

Приклади

Наступний приклад показує, як стиснути один файл з налаштуваннями за замовчуванням: стиснення LZMA без шифрування.

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)

Ініціалізує новий екземпляр класу Aspose.Zip.SevenZip.SevenZipArchive та формує список елементів, які можна витягти з архіву.

public SevenZipArchive(Stream sourceStream, string password = null)

Параметри

sourceStream Stream

Джерело архіву.

password string

Необов’язковий пароль для розшифрування. Якщо імена файлів зашифровані, він повинен бути присутнім.

Приклади

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

Примітки

Цей конструктор не розпаковує жоден елемент. Дивіться метод Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) для розпакування.

Виключення

ArgumentException

sourceStream не є доступним для переміщення.

ArgumentNullException

sourceStream є null.

NotImplementedException

Архів містить більше ніж один кодувальник. Підтримується лише стиснення LZMA.

SevenZipArchive(string, string)

Ініціалізує новий екземпляр класу Aspose.Zip.SevenZip.SevenZipArchive та формує список елементів, які можна витягти з архіву.

public SevenZipArchive(string path, string password = null)

Параметри

path string

Повний або відносний шлях до файлу архіву.

password string

Необов’язковий пароль для розшифрування. Якщо імена файлів зашифровані, він повинен бути присутнім.

Приклади

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

Примітки

Цей конструктор не розпаковує жоден елемент. Дивіться метод Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String) для розпакування.

Виключення

ArgumentNullException

path є null.

SecurityException

Виклик не має необхідних дозволів для доступу.

ArgumentException

path є порожнім, містить лише пробіли або містить недійсні символи.

UnauthorizedAccessException

Доступ до файлу path заборонено.

PathTooLongException

Вказаний path, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.

NotSupportedException

Файл за path містить двокрапку (:) посередині рядка.

FileNotFoundException

Файл не знайдено.

DirectoryNotFoundException

Вказаний шлях недійсний, наприклад, знаходиться на не відображеному диску.

IOException

Файл вже відкритий.

SevenZipArchive(string[], string)

Ініціалізує новий екземпляр класу Aspose.Zip.SevenZip.SevenZipArchive з багатотомного архіву 7z та формує список елементів, які можна витягти з архіву.

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

Параметри

parts string[]

Шляхи до кожного сегмента багатотомного архіву 7z у відповідному порядку.

password string

Необов’язковий пароль для розшифрування. Якщо імена файлів зашифровані, він повинен бути присутнім.

Приклади

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

Виключення

ArgumentNullException

parts є null.

ArgumentException

parts не має елементів.

SecurityException

Виклик не має необхідних дозволів для доступу.

ArgumentException

Шлях до файлу є порожнім, містить лише пробіли або містить недійсні символи.

UnauthorizedAccessException

Доступ до файлу заборонено.

PathTooLongException

Вказаний шлях до частини, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.

NotSupportedException

Файл за шляхом містить двокрапку (:) посередині рядка.

Властивості

Entries

Отримує елементи типу Aspose.Zip.SevenZip.SevenZipArchiveEntry, які складають архів.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Значення властивості

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

Налаштування стиснення та шифрування, які використовуються для нових елементів Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Значення властивості

SevenZipEntrySettings

Методи

CreateEntries(DirectoryInfo, bool)

Додає до архіву всі файли та каталоги рекурсивно у вказаному каталозі.

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

Параметри

directory DirectoryInfo

Каталог для стиснення.

includeRootDirectory bool

Вказує, чи включати кореневий каталог.

Повертає

SevenZipArchive

Архів з сформованими елементами.

Приклади

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

Виключення

DirectoryNotFoundException

Шлях до directory недійсний, наприклад, знаходиться на не відображеному диску.

SecurityException

Виклик не має необхідних дозволів для доступу до directory.

CreateEntries(string, bool)

Додає до архіву всі файли та каталоги рекурсивно у вказаному каталозі.

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

Параметри

sourceDirectory string

Каталог для стиснення.

includeRootDirectory bool

Вказує, чи включати кореневий каталог.

Повертає

SevenZipArchive

Архів з сформованими елементами.

Приклади

Сформуйте архів 7z з стисненням LZMA2.

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

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Створює єдиний елемент в архіві.

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

Параметри

name string

Ім’я елемента.

fileInfo FileInfo

Метадані файлу, що підлягає стисненню.

openImmediately bool

True, якщо відкривати файл відразу, інакше відкривати файл при збереженні архіву.

newEntrySettings SevenZipEntrySettings

Налаштування стиснення та шифрування, які використовуються для доданого елемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Повертає

SevenZipArchiveEntry

Екземпляр елемента Seven Zip.

Приклади

Сформуйте архів з елементами, зашифрованими різними паролями.

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

Примітки

Ім'я елемента задається виключно параметром name. Ім'я файлу, вказане в параметрі fileInfo, не впливає на ім'я елемента.

Якщо файл відкритий відразу за допомогою параметра openImmediately, він буде заблокований до збереження архіву.

Виключення

UnauthorizedAccessException

fileInfo є тільки для читання або є каталогом.

DirectoryNotFoundException

Вказаний шлях недійсний, наприклад, знаходиться на не відображеному диску.

IOException

Файл вже відкритий.

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Створює єдиний елемент в архіві.

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

Параметри

name string

Ім’я елемента.

source Stream

Вхідний потік для елемента.

newEntrySettings SevenZipEntrySettings

Налаштування стиснення та шифрування, які використовуються для доданого елемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.

fileInfo FileSystemInfo

Метадані файлу або папки, які потрібно стиснути.

Повертає

SevenZipArchiveEntry

Екземпляр елемента SevenZip.

Приклади

Сформуйте архів з зашифрованим елементом, стиснутим 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);
    }
}

Примітки

Ім'я елемента задається виключно параметром name. Ім'я файлу, вказане в параметрі fileInfo, не впливає на ім'я елемента.

fileInfo може посилатися на System.IO.DirectoryInfo, якщо елемент є каталогом.

Виключення

InvalidOperationException

Якщо source і fileInfo обидва є null або source є null, а fileInfo представляє каталог.

CreateEntry(string, Stream, SevenZipEntrySettings)

Створює єдиний елемент в архіві.

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

Параметри

name string

Ім’я елемента.

source Stream

Вхідний потік для елемента.

newEntrySettings SevenZipEntrySettings

Налаштування стиснення та шифрування, які використовуються для доданого елемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Повертає

SevenZipArchiveEntry

Екземпляр елемента Zip.

Приклади

Сформуйте архів 7z з стисненням 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(string, string, bool, SevenZipEntrySettings)

Створює єдиний елемент в архіві.

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

Параметри

name string

Ім’я елемента.

path string

Повне ім’я нового файлу або відносне ім’я файлу, яке потрібно стиснути.

openImmediately bool

True, якщо відкривати файл відразу, інакше відкривати файл при збереженні архіву.

newEntrySettings SevenZipEntrySettings

Налаштування стиснення та шифрування, які використовуються для доданого елемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.

Повертає

SevenZipArchiveEntry

Екземпляр елемента Zip.

Приклади

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

Примітки

Ім'я елемента задається виключно параметром name. Ім'я файлу, вказане в параметрі path, не впливає на ім'я елемента.

Якщо файл відкритий відразу за допомогою параметра openImmediately, він буде заблокований до збереження архіву.

Виключення

ArgumentNullException

path є null.

SecurityException

Виклик не має необхідних дозволів для доступу.

ArgumentException

path є порожнім, містить лише пробіли або містить недійсні символи.

UnauthorizedAccessException

Доступ до файлу path заборонено.

PathTooLongException

Вказаний path, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.

NotSupportedException

Файл за path містить двокрапку (:) посередині рядка.

Dispose()

Виконує завдання, визначені програмою, пов’язані з вивільненням, звільненням або скиданням некерованих ресурсів.

public void Dispose()

Dispose(bool)

Виконує завдання, визначені програмою, пов’язані з вивільненням, звільненням або скиданням некерованих ресурсів.

protected virtual void Dispose(bool disposing)

Параметри

disposing bool

Вказує, чи слід вивільнити керовані ресурси.

ExtractToDirectory(string, string)

Витягує всі файли з архіву до вказаного каталогу.

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

Параметри

destinationDirectory string

Шлях до каталогу, куди потрібно помістити витягнуті файли.

password string

Необов’язковий пароль для розшифрування вмісту.

Приклади

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

Примітки

Якщо каталог не існує, він буде створений.

password використовується лише для розшифрування вмісту. Якщо імена файлів зашифровані, надайте пароль у конструкторі Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String) або Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String).

Виключення

ArgumentNullException

destinationDirectory є null.

PathTooLongException

Вказаний шлях, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.

SecurityException

Виклик не має необхідних дозволів для доступу до існуючого каталогу.

NotSupportedException

Якщо каталог не існує, шлях містить символ двокрапки (:) який не є частиною мітки диска (“C:").

ArgumentException

destinationDirectory є рядком нульової довжини, містить лише пробіли або містить один або кілька недійсних символів. Ви можете запитати недійсні символи, використовуючи метод System.IO.Path.GetInvalidPathChars. -або- шлях префіксований або містить лише символ двокрапки (:).

IOException

Вказаний каталог є файлом. -або- Ім’я мережі невідоме.

InvalidDataException

Архів пошкоджений.

Save(Stream)

Зберігає архів 7z у наданому потоці.

public void Save(Stream output)

Параметри

output Stream

Потік призначення.

Приклади

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

Примітки

output повинен бути доступним для переміщення.

Виключення

ArgumentException

output не підтримує переміщення.

ArgumentNullException

output є null.

InvalidOperationException

Кодувальник не зміг стиснути дані.

Save(string)

Зберігає архів у наданий файл призначення.

public void Save(string destinationFileName)

Параметри

destinationFileName string

Шлях архіву, який потрібно створити. Якщо вказане ім’я файлу вказує на існуючий файл, він буде перезаписаний.

Приклади

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

Примітки

Можна зберегти архів за тим самим шляхом, з якого його було завантажено. Однак це не рекомендується, оскільки цей підхід використовує копіювання у тимчасовий файл.

Виключення

ArgumentNullException

destinationFileName є null.

SecurityException

Виклик не має необхідних дозволів для доступу.

ArgumentException

destinationFileName є порожнім, містить лише пробіли або містить недійсні символи.

UnauthorizedAccessException

Доступ до файлу destinationFileName заборонено.

PathTooLongException

Вказаний destinationFileName, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.

NotSupportedException

Файл за destinationFileName містить двокрапку (:) посередині рядка.

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

Зберігає багатотомний архів у вказаний каталог призначення.

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

Параметри

destinationDirectory string

Шлях до каталогу, в якому потрібно створити сегменти архіву.

options SplitSevenZipArchiveSaveOptions

Опції для збереження архіву, включаючи ім’я файлу.

Приклади

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

Примітки

Цей метод формує кілька (n) файлів filename.7z.001, filename.7z.002, ..., filename.7z.(n).

Не можна зробити існуючий архів багатотомним.

Виключення

InvalidOperationException

Цей архів був відкритий з існуючого джерела.

ArgumentNullException

destinationDirectory є null.

SecurityException

Виклик не має необхідних дозволів для доступу до каталогу.

ArgumentException

destinationDirectory містить недійсні символи, такі як “, >, <, або |.

PathTooLongException

Вказаний шлях перевищує максимальну довжину, визначену системою.

 Українська