Class CpioArchive

Class CpioArchive

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

Цей клас представляє файл архіву cpio.

public class CpioArchive : IArchive, IDisposable

Спадкування

objectCpioArchive

Реалізує

IArchive, IDisposable

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

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

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

CpioArchive()

Ініціалізує новий екземпляр класу Aspose.Zip.Cpio.CpioArchive.

public CpioArchive()

Приклади

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

using (var archive = new CpioArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.cpio");
}

CpioArchive(Stream)

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

public CpioArchive(Stream sourceStream)

Параметри

sourceStream Stream

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

Приклади

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

using (var archive = new CpioArchive(File.OpenRead("archive.cpio")))
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Примітки

Цей конструктор не розпаковує жоден запис. Дивіться метод Aspose.Zip.Cpio.CpioEntry.Open для розпакування.

Винятки

ArgumentNullException

sourceStream є null.

ArgumentException

sourceStream не доступний для пошуку.

InvalidDataException

sourceStream не є дійсним архівом cpio.

CpioArchive(string)

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

public CpioArchive(string path)

Параметри

path string

Шлях до файлу архіву.

Приклади

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

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

Примітки

Цей конструктор не розпаковує жоден запис. Дивіться метод Aspose.Zip.Cpio.CpioEntry.Open для розпакування.

Винятки

ArgumentNullException

path є null.

SecurityException

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

ArgumentException

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

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

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

FileNotFoundException

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

DirectoryNotFoundException

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

IOException

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

Властивості

Entries

Отримує записи типу Aspose.Zip.Cpio.CpioEntry, що складають архів.

public ReadOnlyCollection<cpioentry> Entries { get; }

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

ReadOnlyCollection<CpioEntry&gt;

Методи

CreateEntries(string, bool)

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

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

Параметри

sourceDirectory string

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

includeRootDirectory bool

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

Повертає

CpioArchive

Екземпляр запису Cpio.

Приклади

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntries("C:\folder", false);
        archive.Save(cpioFile);
    }
}

Винятки

ArgumentNullException

sourceDirectory є null.

SecurityException

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

ArgumentException

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

PathTooLongException

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

IOException

sourceDirectory є файлом, а не каталогом.

CreateEntries(DirectoryInfo, bool)

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

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

Параметри

directory DirectoryInfo

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

includeRootDirectory bool

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

Повертає

CpioArchive

Екземпляр запису Cpio.

Приклади

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
        archive.Save(cpioFile);
    }
}

Винятки

ArgumentNullException

directory є null.

SecurityException

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

IOException

directory є файлом, а не каталогом.

CreateEntry(string, FileInfo, bool)

Створює один запис в архіві.

public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)

Параметри

name string

Ім’я запису.

fileInfo FileInfo

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

openImmediately bool

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

Повертає

CpioEntry

Екземпляр запису Cpio.

Приклади

FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
    archive.CreateEntry("test.bin", fileInfo);
    archive.Save("archive.cpio");
}

Примітки

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

Винятки

ArgumentNullException

name є null.

ArgumentException

name є порожнім.

ArgumentNullException

fileInfo є null.

CreateEntry(string, string, bool)

Створює один запис в архіві.

public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)

Параметри

name string

Ім’я запису.

sourcePath string

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

openImmediately bool

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

Повертає

CpioEntry

Екземпляр запису Cpio.

Приклади

using (var archive = new CpioArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.cpio");
}

Примітки

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

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

Винятки

ArgumentNullException

sourcePath є null.

SecurityException

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

ArgumentException

sourcePath є порожнім, містить лише пробіли або містить недійсні символи. - або - Ім’я файлу, як частина name, перевищує 100 символів.

UnauthorizedAccessException

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

PathTooLongException

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

NotSupportedException

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

CreateEntry(string, Stream)

Створює один запис в архіві.

public CpioEntry CreateEntry(string name, Stream source)

Параметри

name string

Ім’я запису.

source Stream

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

Повертає

CpioEntry

Екземпляр запису Cpio.

Приклади

using (var archive = new CpioArchive())
{
    archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
    archive.Save("archive.cpio");
}

Винятки

ArgumentNullException

name є null.

ArgumentNullException

source є null.

ArgumentException

name є порожнім.

DeleteEntry(CpioEntry)

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

public CpioArchive DeleteEntry(CpioEntry entry)

Параметри

entry CpioEntry

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

Повертає

CpioArchive

Екземпляр запису Cpio.

Приклади

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

using (var archive = new CpioArchive("archive.cpio"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save(outputCpioFile);
}

Винятки

ArgumentNullException

entry є null.

DeleteEntry(int)

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

public CpioArchive DeleteEntry(int entryIndex)

Параметри

entryIndex int

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

Повертає

CpioArchive

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

Приклади

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

Винятки

ArgumentOutOfRangeException

entryIndex менше 0.-або- entryIndex дорівнює або більше Entries count.

Dispose()

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

public void Dispose()

Dispose(bool)

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

protected virtual void Dispose(bool disposing)

Параметри

disposing bool

Чи слід вивільнити керовані ресурси.

ExtractToDirectory(string)

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

public void ExtractToDirectory(string destinationDirectory)

Параметри

destinationDirectory string

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

Приклади

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

Примітки

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

Винятки

ArgumentNullException

path є null

PathTooLongException

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

SecurityException

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

NotSupportedException

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

ArgumentException

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

IOException

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

Save(string, CpioFormat)

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

public void Save(string destinationFileName, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

destinationFileName string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (var archive = new CpioArchive())
{
    archive.CreateEntry("entry1", "data.bin");        
    archive.Save("archive.cpio");
}

Примітки

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

Винятки

ArgumentException

destinationFileName є рядком нульової довжини, містить лише пробіли або містить один або кілька недійсних символів, визначених System.IO.Path.InvalidPathChars.

ArgumentNullException

destinationFileName є null.

PathTooLongException

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

DirectoryNotFoundException

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

IOException

Виникла помилка вводу-виводу під час відкриття файлу.

UnauthorizedAccessException

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

NotSupportedException

destinationFileName має недійсний формат.

Save(Stream, CpioFormat)

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

public void Save(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry1", "data.bin");        
        archive.Save(cpioFile);
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним. - або - output є тим же потоком, з якого ми витягуємо. - АБО - Неможливо зберегти архів у cpioFormat через обмеження формату.

SaveGzipped(Stream, CpioFormat)

Зберігає архів у потоці з gzip стисненням.

public void SaveGzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.gz"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveGzipped(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним.

SaveGzipped(string, CpioFormat)

Зберігає архів у файлі за шляхом з gzip стисненням.

public void SaveGzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveGzipped("result.cpio.gz");
    }
}

SaveLZMACompressed(Stream, CpioFormat)

Зберігає архів у потоці з LZMA стисненням.

public void SaveLZMACompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.lzma"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveLZMACompressed(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Важливо: архів cpio складається, а потім стискається в цьому методі, його вміст зберігається внутрішньо. Будьте обережні з використанням пам'яті.

SaveLZMACompressed(string, CpioFormat)

Зберігає архів у файлі за шляхом з lzma стисненням.

public void SaveLZMACompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveLZMACompressed("result.cpio.lzma");
    }
}

Примітки

Важливо: архів cpio складається, а потім стискається в цьому методі, його вміст зберігається внутрішньо. Будьте обережні з використанням пам’яті.

SaveLzipped(Stream, CpioFormat)

Зберігає архів у потоці з lzip стисненням.

public void SaveLzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.lz"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveGzipped(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним.

SaveLzipped(string, CpioFormat)

Зберігає архів у файлі за шляхом з lzip стисненням.

public void SaveLzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveGzipped("result.cpio.lz");
    }
}

SaveXzCompressed(Stream, CpioFormat, XzArchiveSettings)

Зберігає архів у потоці з xz стисненням.

public void SaveXzCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

settings XzArchiveSettings

Набір налаштувань для конкретного xz архіву: розмір словника, розмір блоку, тип перевірки.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.xz"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveXzCompressed(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним.

SaveXzCompressed(string, CpioFormat, XzArchiveSettings)

Зберігає архів за шляхом з xz стисненням.

public void SaveXzCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

settings XzArchiveSettings

Набір налаштувань для конкретного xz архіву: розмір словника, розмір блоку, тип перевірки.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveXzCompressed("result.cpio.xz");
    }
}

SaveZCompressed(Stream, CpioFormat)

Зберігає архів у потоці з Z стисненням.

public void SaveZCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.Z"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveZCompressed(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним.

SaveZCompressed(string, CpioFormat)

Зберігає архів за шляхом з Z стисненням.

public void SaveZCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveZCompressed("result.cpio.Z");
    }
}

SaveZstandard(Stream, CpioFormat)

Зберігає архів у потоці з Zstandard стисненням.

public void SaveZstandard(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

output Stream

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream result = File.OpenWrite("result.cpio.zst"))
{
    using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
    {
        using (var archive = new CpioArchive())
        {
            archive.CreateEntry("entry.bin", source);
            archive.SaveZstandard(result);
        }
    }
}

Примітки

output повинен бути записуваним.

Винятки

ArgumentNullException

output є null.

ArgumentException

output не є записуваним.

SaveZstandard(string, CpioFormat)

Зберігає архів у файлі за шляхом з Zstandard стисненням.

public void SaveZstandard(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Параметри

path string

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

cpioFormat CpioFormat

Визначає формат заголовка cpio.

Приклади

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry.bin", source);
        archive.SaveZstandard("result.cpio.zst");
    }
}
 Українська