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.

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");
    }
}
 Русский