Class Archive
Названий на: Aspose.Zip Асамблея: Aspose.Zip.dll (25.5.0)
Цей клас являє собою файл архіву zip. Використовуйте його для компонування, екстракції або оновлення архівів zip .
public class Archive : IArchive, IDisposableInheritance
Implements
Нападні члени
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
sourceStream’ is not seekable.
Заголовок шифрування для 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
path’ is null.
Замовник не має необхідного дозволу на доступ.
path’ є порожнім, містить тільки білі простори, або містить недійсні символи.
Доступ до файлу path" відмовляється.
Наприклад, на платформах, заснованих на Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл в path’ містить колону (:) в середині смуги.
Файл не знайдено.
Визначений шлях недійсний, наприклад, перебування на безкартованому двигуні.
Файл вже відкритий.
Документ корумпований.
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
Не можна завантажувати заголовки ZIP, оскільки надані файли пошкоджені.
Properties
Entries
Отримається вхідний тип Aspose.Zip.ArchiveEntry, що складається з архіву.
public ReadOnlyCollection<archiveentry> Entries { get; }вартість нерухомості
ReadOnlyCollection • < ArchiveEntry >
NewEntrySettings
Налаштування компресії та шифрування використовуються для нових додатків Aspose.Zip.ArchiveEntry.
public ArchiveEntrySettings NewEntrySettings { get; }вартість нерухомості
Methods
CreateEntries(Реферат на тему: Bool)
Додайте до архіву всі файли та каталоги повторно в даному каталозі.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)Parameters
directory DirectoryInfo
Керівництво для компресії.
includeRootDirectory bool
Показати, чи включити сам корінний каталог, чи ні.
Returns
Архів з складеними входами.
Examples
using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}Exceptions
Дорога до directory’ є недійсною, наприклад, бути на безкартованому диску.
Зателефонувач не має необхідного дозволу на доступ до directory".
CreateEntries(Стрічка, боол)
Додайте до архіву всі файли та каталоги повторно в даному каталозі.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)Parameters
sourceDirectory string
Керівництво для компресії.
includeRootDirectory bool
Показати, чи включити сам корінний каталог, чи ні.
Returns
Архів з складеними входами.
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
Вхідна інстанція 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
path’ is null.
Замовник не має необхідного дозволу на доступ.
path’ є порожнім, містить тільки білі простори, або містить недійсні символи.
Доступ до файлу path" відмовляється.
Наприклад, на платформах, заснованих на Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Файл в path’ містить колону (:) в середині смуги.
CreateEntry(Стрий, Стрий, ArchiveEntrySettings)
Створіть єдиний вхід в архіві.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)Parameters
name string
Назва входу.
source Stream
Вхідний потік для входу.
newEntrySettings ArchiveEntrySettings
Налаштування компресії та шифрування використовуються для додавання елемента Aspose.Zip.ArchiveEntry.
Returns
Вхідна інстанція 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
Вхідна інстанція 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
fileInfo’ is read-only or is a directory.
Визначений шлях недійсний, наприклад, перебування на безкартованому двигуні.
Файл вже відкритий.
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
Вхідна інстанція 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
Як 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
Вхідна інстанція ZIP.
Examples
Створення архіву з зашифрованим входом.
System.Func<Stream> 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
Архів з входом видалений.
Examples
Ось як ви можете видалити всі записи за винятком останнього:
using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count > 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}Exceptions
Архів був розпущений.
DeleteEntry(ІНТ)
Увімкніть вхід з списку входів за індексу.
public Archive DeleteEntry(int entryIndex)Parameters
entryIndex int
Індекс, заснований на нулі, вхід повинен бути видалений.
Returns
Архів з входом видалений.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}Exceptions
Архів був розпущений.
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
destinationDirectory’ is null.
Наприклад, на платформах, заснованих на Windows, шляхи повинні бути менше 248 символів, а імена файлів повинні бути менше 260 символів.
Зателефонувач не має необхідного дозволу на доступ до існуючого каталогу.
Якщо каталог не існує, то шлях містить символ колону (:) який не є частиною етикетки диска (“C:”).
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 (:).
Директива, зазначена шляхом, є файлом. -або- Назва мережі не відома.
Помилковий пароль був наданий. - або - Архів пошкоджений.
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
outputStream’ is not writable.
Архів був розпущений.
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
destinationFileName’ is null.
Замовник не має необхідного дозволу на доступ.
destinationFileName’ є порожнім, містить тільки білі простори, або містить недійсні символи.
Доступ до файлу destinationFileName’ відмовляється.
Визначений destinationFileName’, ім’я файлу, або обидва перевищують максимальну довжину, визначену системою.Наприклад, на платформах, заснованих на Windows, шляхи повинні бути менше 248 символів, а імена файлу повинні бути менше 260 символів.
Файл в destinationFileName’ містить колону (:) в середині смуги.
Файл не знайдено.
Визначений шлях недійсний, наприклад, перебування на безкартованому двигуні.
Файл вже відкритий.
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
Архів був відкритий з існуючого джерела.
Цей файл компресується за допомогою методу XZ і шифрується.
destinationDirectory’ is null.
Зателефонувач не має необхідного дозволу на доступ до каталогу.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Визначений шлях перевищує максимальну довжину, визначену системою.
Архів був розпущений.