Class CpioArchive
Namespace: Aspose.Zip.Cpio
Assembly: Aspose.Zip.dll (25.1.0)
Этот класс представляет файл архива cpio.
public class CpioArchive : 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 для распаковки.
Исключения
sourceStream
равно null.
sourceStream
не поддерживает перемещение.
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 для распаковки.
Исключения
path
равно null.
У вызывающего нет необходимых прав для доступа.
path
пуст, содержит только пробелы или содержит недопустимые символы.
Доступ к файлу path
запрещен.
Указанный path
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Файл по адресу path
содержит двоеточие (:) в середине строки.
Файл не найден.
Указанный путь недействителен, например, находится на неотображаемом диске.
Файл уже открыт.
Свойства
Entries
Получает записи типа Aspose.Zip.Cpio.CpioEntry, которые составляют архив.
public ReadOnlyCollection<cpioentry> Entries { get; }
Значение свойства
ReadOnlyCollection<CpioEntry>
Методы
CreateEntries(string, bool)
Добавляет в архив все файлы и каталоги рекурсивно в заданном каталоге.
public CpioArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Параметры
sourceDirectory
string
Каталог для сжатия.
includeRootDirectory
bool
Указывает, следует ли включать сам корневой каталог или нет.
Возвращает
Экземпляр записи Cpio.
Примеры
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(cpioFile);
}
}
Исключения
sourceDirectory
равно null.
У вызывающего нет необходимых прав для доступа к sourceDirectory
.
sourceDirectory
содержит недопустимые символы, такие как “, <, >, или |.
Указанный путь, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов. Указанный путь, имя файла или оба слишком длинные.
sourceDirectory
обозначает файл, а не каталог.
CreateEntries(DirectoryInfo, bool)
Добавляет в архив все файлы и каталоги рекурсивно в заданном каталоге.
public CpioArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Параметры
directory
DirectoryInfo
Каталог для сжатия.
includeRootDirectory
bool
Указывает, следует ли включать сам корневой каталог или нет.
Возвращает
Экземпляр записи 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);
}
}
Исключения
directory
равно null.
У вызывающего нет необходимых прав для доступа к directory
.
directory
обозначает файл, а не каталог.
CreateEntry(string, FileInfo, bool)
Создает одну запись в архиве.
public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
Параметры
name
string
Имя записи.
fileInfo
FileInfo
Метаданные файла или папки, которые будут сжаты.
openImmediately
bool
True, если открыть файл немедленно, иначе открыть файл при сохранении архива.
Возвращает
Экземпляр записи Cpio.
Примеры
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.cpio");
}
Примечания
Если файл открыт немедленно с параметром openImmediately
, он будет заблокирован до тех пор, пока архив не будет освобожден.
Исключения
name
равно null.
name
пуст.
fileInfo
равно null.
CreateEntry(string, string, bool)
Создает одну запись в архиве.
public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
Параметры
name
string
Имя записи.
sourcePath
string
Путь к файлу, который будет сжат.
openImmediately
bool
True, если открыть файл немедленно, иначе открыть файл при сохранении архива.
Возвращает
Экземпляр записи Cpio.
Примеры
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
Примечания
Имя записи устанавливается исключительно в параметре name
. Имя файла, указанное в параметре sourcePath
, не влияет на имя записи.
Если файл открыт немедленно с параметром openImmediately
, он будет заблокирован до тех пор, пока архив не будет освобожден.
Исключения
sourcePath
равно null.
У вызывающего нет необходимых прав для доступа.
sourcePath
пуст, содержит только пробелы или содержит недопустимые символы. - или - Имя файла, как часть name
, превышает 100 символов.
Доступ к файлу sourcePath
запрещен.
Указанный sourcePath
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов. - или - name
слишком длинное для cpio.
Файл по адресу sourcePath
содержит двоеточие (:) в середине строки.
CreateEntry(string, Stream)
Создает одну запись в архиве.
public CpioEntry CreateEntry(string name, Stream source)
Параметры
name
string
Имя записи.
source
Stream
Входной поток для записи.
Возвращает
Экземпляр записи Cpio.
Примеры
using (var archive = new CpioArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.cpio");
}
Исключения
name
равно null.
source
равно null.
name
пуст.
DeleteEntry(CpioEntry)
Удаляет первое вхождение конкретной записи из списка записей.
public CpioArchive DeleteEntry(CpioEntry entry)
Параметры
entry
CpioEntry
Запись, которую нужно удалить из списка записей.
Возвращает
Экземпляр записи Cpio.
Примеры
Вот как вы можете удалить все записи, кроме последней:
using (var archive = new CpioArchive("archive.cpio"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputCpioFile);
}
Исключения
entry
равно null.
DeleteEntry(int)
Удаляет запись из списка записей по индексу.
public CpioArchive DeleteEntry(int entryIndex)
Параметры
entryIndex
int
Нулевой индекс записи, которую нужно удалить.
Возвращает
Архив с удаленной записью.
Примеры
using (var archive = new CpioArchive("two_files.cpio"))
{
archive.DeleteEntry(0);
archive.Save("single_file.cpio");
}
Исключения
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");
}
Примечания
Если каталог не существует, он будет создан.
Исключения
path равно null
Указанный путь, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
У вызывающего нет необходимых прав для доступа к существующему каталогу.
Если каталог не существует, путь содержит символ двоеточия (:) не в части метки диска (“C:").
path является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы, используя метод System.IO.Path.GetInvalidPathChars. - или - path предваряется или содержит только символ двоеточия (:).
Каталог, указанный по пути, является файлом. - или - Сетевое имя неизвестно.
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");
}
Примечания
Возможно сохранить архив по тому же пути, с которого он был загружен. Однако это не рекомендуется, так как этот подход использует копирование во временный файл.
Исключения
destinationFileName
является строкой нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, определяемых System.IO.Path.InvalidPathChars.
destinationFileName
равно null.
Указанный destinationFileName
, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны быть меньше 248 символов, а имена файлов должны быть меньше 260 символов.
Указанный destinationFileName
недействителен (например, он находится на неотображаемом диске).
Произошла ошибка ввода-вывода при открытии файла.
destinationFileName
указывает файл, который доступен только для чтения, и доступ не является чтением. - или - путь указывает каталог. - или - У вызывающего нет необходимых прав.
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
должен быть записываемым.
Исключения
output
равно null.
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
должен быть записываемым.
Исключения
output
равно null.
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
должен быть записываемым.
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
должен быть записываемым.
Исключения
output
равно null.
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
должен быть записываемым.
Исключения
output
равно null.
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
должен быть записываемым.
Исключения
output
равно null.
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
должен быть записываемым.
Исключения
output
равно null.
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");
}
}