Class Archive
Названий на: Aspose.Zip Асамблея: Aspose.Zip.dll (25.5.0)
Цей клас являє собою файл архіву zip. Використовуйте його для компонування, екстракції або оновлення архівів zip .
public class Archive : IArchive, IDisposable
Inheritance
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 |.
Визначений шлях перевищує максимальну довжину, визначену системою.
Архів був розпущений.