Class Archive

Class Archive

Названий на: Aspose.Zip Асамблея: Aspose.Zip.dll (25.5.0)

Цей клас являє собою файл архіву zip. Використовуйте його для компонування, екстракції або оновлення архівів zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Нападні члени

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

Constructors

Archive(ArchiveEntrySettings)

Ініціалізує нову інстанцію класу Aspose.Zip.Archive з факультативними налаштуваннями для його записів.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для нових додатків Aspose.Zip.ArchiveEntry.Якщо не зазначено, найпоширеніша дефлатна компресія без шифрування буде використовуватися.

Examples

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

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Потік, ArchiveLoadOptions, ArchiveEntrySettings)

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

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

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

loadOptions ArchiveLoadOptions

Можливість завантаження існуючих архівів.

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для нових додатків Aspose.Zip.ArchiveEntry.Якщо не зазначено, найпоширеніша дефлатна компресія без шифрування буде використовуватися.

Examples

Наступний приклад витягує зашифрований файл, а потім декомпресує перший вхід в .

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Цей конструктор не декомпресує жодного входу. переглянути Aspose.Zip.ArchiveEntry.Open(System.String) метод для декомпресії.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Заголовок шифрування для AES суперечить методу компресії WinZip.

Archive(Архіви, ArchiveLoadOptions, ArchiveEntrySettings)

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

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

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

loadOptions ArchiveLoadOptions

Можливість завантаження існуючих архівів.

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для нових додатків Aspose.Zip.ArchiveEntry.Якщо не зазначено, найпоширеніша дефлатна компресія без шифрування буде використовуватися.

Examples

Наступний приклад витягує зашифрований файл, а потім декомпресує перший вхід в .

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Цей конструктор не декомпресує жодного входу. переглянути Aspose.Zip.ArchiveEntry.Open(System.String) метод для декомпресії.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

Доступ до файлу path" відмовляється.

PathTooLongException

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

NotSupportedException

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

FileNotFoundException

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

DirectoryNotFoundException

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

IOException

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

InvalidDataException

Документ корумпований.

Archive(Стринг, Стринг[ ], ArchiveLoadOptions)

Ініціалізує новий приклад класу Aspose.Zip.Archive з мультимедійного zip-архіву і складає вхідний список, який можна витягнути з архіву.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

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

Зазвичай цей сегмент має *.zip розширення і менше, ніж інші.

segmentsInOrder string [ ]

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

Зазвичай вони називають filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Можливість завантаження існуючих архівів.

Examples

Цей зразк витягує в каталог архів з трьох сегментів.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Не можна завантажувати заголовки ZIP, оскільки надані файли пошкоджені.

Properties

Entries

Отримається вхідний тип Aspose.Zip.ArchiveEntry, що складається з архіву.

public ReadOnlyCollection<archiveentry> Entries { get; }

вартість нерухомості

ReadOnlyCollection • < ArchiveEntry >

NewEntrySettings

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

public ArchiveEntrySettings NewEntrySettings { get; }

вартість нерухомості

ArchiveEntrySettings

Methods

CreateEntries(Реферат на тему: Bool)

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

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

Parameters

directory DirectoryInfo

Керівництво для компресії.

includeRootDirectory bool

Показати, чи включити сам корінний каталог, чи ні.

Returns

Archive

Архів з складеними входами.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Дорога до directory’ є недійсною, наприклад, бути на безкартованому диску.

SecurityException

Зателефонувач не має необхідного дозволу на доступ до directory".

CreateEntries(Стрічка, боол)

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

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

Parameters

sourceDirectory string

Керівництво для компресії.

includeRootDirectory bool

Показати, чи включити сам корінний каталог, чи ні.

Returns

Archive

Архів з складеними входами.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(string, string, bool, ArchiveEntrySettings)

Створіть єдиний вхід в архіві.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Назва входу.

path string

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

openImmediately bool

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

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Вхідна інстанція ZIP.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

Назва файлу в параметрі не впливає на ім’я входу.

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

Exceptions

ArgumentNullException

path’ is null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

Доступ до файлу path" відмовляється.

PathTooLongException

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

NotSupportedException

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

CreateEntry(Стрий, Стрий, ArchiveEntrySettings)

Створіть єдиний вхід в архіві.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Назва входу.

source Stream

Вхідний потік для входу.

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Вхідна інстанція ZIP.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(Стриг, FileInfo, Bool, ArchiveEntrySettings)

Створіть єдиний вхід в архіві.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Назва входу.

fileInfo FileInfo

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

openImmediately bool

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

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Вхідна інстанція ZIP.

Examples

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

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

Назва файлу в параметрі не впливає на ім’я входу.

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

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

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

IOException

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

CreateEntry(Стрий, Стрий, ArchiveEntrySettings, FileSystemInfo)

Створіть єдиний вхід в архіві.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

Назва входу.

source Stream

Вхідний потік для входу.

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

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

Returns

ArchiveEntry

Вхідна інстанція ZIP.

Examples

Створення архіву з зашифрованим входом.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

Назва файлу в параметрі не впливає на ім’я входу.

Ви можете звернутися до System.IO.DirectoryInfo, якщо вхід є каталогом.

Exceptions

InvalidOperationException

Як source’ і fileInfo’ нуль або source’ нуль і fileInfo’ відображається для каталогу.

CreateEntry(Стрічка, Func, АрхівEntrySettings)

Створіть єдиний вхід в архіві.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Назва входу.

streamProvider Func • < Stream >

Метод, що забезпечує вхідний потік для входу.

newEntrySettings ArchiveEntrySettings

Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Вхідна інстанція ZIP.

Examples

Створення архіву з зашифрованим входом.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Цей метод застосовується для .NET Framework 4.0 і вище, а також для .NET Standard 2.0 версії.

DeleteEntry(ArchiveEntry)

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

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

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

Returns

Archive

Архів з входом видалений.

Examples

Ось як ви можете видалити всі записи за винятком останнього:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

Архів був розпущений.

DeleteEntry(ІНТ)

Увімкніть вхід з списку входів за індексу.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Індекс, заснований на нулі, вхід повинен бути видалений.

Returns

Archive

Архів з входом видалений.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Архів був розпущений.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

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

public void Dispose()

Dispose(Бол)

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

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Чи потрібно витрачати управляні ресурси.

ExtractToDirectory(стрічка)

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

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Шлях до каталогу для розміщення витягнутих файлів.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

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

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

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

SecurityException

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

NotSupportedException

Якщо каталог не існує, то шлях містить символ колону (:) який не є частиною етикетки диска (“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

Директива, зазначена шляхом, є файлом. -або- Назва мережі не відома.

InvalidDataException

Помилковий пароль був наданий. - або - Архів пошкоджений.

Save(Завантажити, ArchiveSaveOptions)

Зберегти архіви до наданого потоку.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

Потік напряму.

saveOptions ArchiveSaveOptions

Вибір варіантів зберігання архівів.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

Вона повинна бути письмовою.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Архів був розпущений.

Save(Архіви, ArchiveSaveOptions)

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

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

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

saveOptions ArchiveSaveOptions

Вибір варіантів зберігання архівів.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

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

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

Доступ до файлу destinationFileName’ відмовляється.

PathTooLongException

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

NotSupportedException

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

FileNotFoundException

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

DirectoryNotFoundException

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

IOException

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

SaveSplit(Стриг, СтригArchiveSaveOptions)

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

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

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

options SplitArchiveSaveOptions

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

Examples

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

Remarks

Цей метод складається з декількох () файлів filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Не можна створювати існуючі архівні мультиплікації.

Exceptions

InvalidOperationException

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

NotSupportedException

Цей файл компресується за допомогою методу XZ і шифрується.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Зателефонувач не має необхідного дозволу на доступ до каталогу.

ArgumentException

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

PathTooLongException

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

ObjectDisposedException

Архів був розпущений.

 Українська