Class SevenZipArchive
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Цей клас представляє файл архіву 7z. Використовуйте його для створення та витягування архівів 7z.
public class SevenZipArchive : 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) для розпакування.
Виключення
sourceStream
не є доступним для переміщення.
sourceStream
є null.
Архів містить більше ніж один кодувальник. Підтримується лише стиснення 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) для розпакування.
Виключення
path
є null.
Виклик не має необхідних дозволів для доступу.
path
є порожнім, містить лише пробіли або містить недійсні символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за path
містить двокрапку (:) посередині рядка.
Файл не знайдено.
Вказаний шлях недійсний, наприклад, знаходиться на не відображеному диску.
Файл вже відкритий.
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");
}
Виключення
parts
є null.
parts
не має елементів.
Виклик не має необхідних дозволів для доступу.
Шлях до файлу є порожнім, містить лише пробіли або містить недійсні символи.
Доступ до файлу заборонено.
Вказаний шлях до частини, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за шляхом містить двокрапку (:) посередині рядка.
Властивості
Entries
Отримує елементи типу Aspose.Zip.SevenZip.SevenZipArchiveEntry, які складають архів.
public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }
Значення властивості
ReadOnlyCollection<SevenZipArchiveEntry>
NewEntrySettings
Налаштування стиснення та шифрування, які використовуються для нових елементів Aspose.Zip.SevenZip.SevenZipArchiveEntry.
public SevenZipEntrySettings NewEntrySettings { get; }
Значення властивості
Методи
CreateEntries(DirectoryInfo, bool)
Додає до архіву всі файли та каталоги рекурсивно у вказаному каталозі.
public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Параметри
directory
DirectoryInfo
Каталог для стиснення.
includeRootDirectory
bool
Вказує, чи включати кореневий каталог.
Повертає
Архів з сформованими елементами.
Приклади
using (SevenZipArchive archive = new SevenZipArchive())
{
DirectoryInfo folder = new DirectoryInfo("C:\\folder");
archive.CreateEntries(folder);
archive.Save("folder.7z");
}
Виключення
Шлях до directory
недійсний, наприклад, знаходиться на не відображеному диску.
Виклик не має необхідних дозволів для доступу до directory
.
CreateEntries(string, bool)
Додає до архіву всі файли та каталоги рекурсивно у вказаному каталозі.
public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Параметри
sourceDirectory
string
Каталог для стиснення.
includeRootDirectory
bool
Вказує, чи включати кореневий каталог.
Повертає
Архів з сформованими елементами.
Приклади
Сформуйте архів 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.
Повертає
Екземпляр елемента 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
, він буде заблокований до збереження архіву.
Виключення
fileInfo
є тільки для читання або є каталогом.
Вказаний шлях недійсний, наприклад, знаходиться на не відображеному диску.
Файл вже відкритий.
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
Метадані файлу або папки, які потрібно стиснути.
Повертає
Екземпляр елемента 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, якщо елемент є каталогом.
Виключення
Якщо 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.
Повертає
Екземпляр елемента 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.
Повертає
Екземпляр елемента 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
, він буде заблокований до збереження архіву.
Виключення
path
є null.
Виклик не має необхідних дозволів для доступу.
path
є порожнім, містить лише пробіли або містить недійсні символи.
Доступ до файлу path
заборонено.
Вказаний path
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за 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).
Виключення
destinationDirectory
є null.
Вказаний шлях, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Виклик не має необхідних дозволів для доступу до існуючого каталогу.
Якщо каталог не існує, шлях містить символ двокрапки (:) який не є частиною мітки диска (“C:").
destinationDirectory
є рядком нульової довжини, містить лише пробіли або містить один або кілька недійсних символів. Ви можете запитати недійсні символи, використовуючи метод System.IO.Path.GetInvalidPathChars. -або- шлях префіксований або містить лише символ двокрапки (:).
Вказаний каталог є файлом. -або- Ім’я мережі невідоме.
Архів пошкоджений.
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
повинен бути доступним для переміщення.
Виключення
output
не підтримує переміщення.
output
є null.
Кодувальник не зміг стиснути дані.
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");
}
}
Примітки
Можна зберегти архів за тим самим шляхом, з якого його було завантажено. Однак це не рекомендується, оскільки цей підхід використовує копіювання у тимчасовий файл.
Виключення
destinationFileName
є null.
Виклик не має необхідних дозволів для доступу.
destinationFileName
є порожнім, містить лише пробіли або містить недійсні символи.
Доступ до файлу destinationFileName
заборонено.
Вказаний destinationFileName
, ім’я файлу або обидва перевищують максимальну довжину, визначену системою. Наприклад, на платформах на базі Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл за 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).
Не можна зробити існуючий архів багатотомним.
Виключення
Цей архів був відкритий з існуючого джерела.
destinationDirectory
є null.
Виклик не має необхідних дозволів для доступу до каталогу.
destinationDirectory
містить недійсні символи, такі як “, >, <, або |.
Вказаний шлях перевищує максимальну довжину, визначену системою.