reckfellENGINE

ZipReader

Чтение записей ZIP в память без автоматического извлечения на диск.

На этой странице
class ZipReaderReckfellSharpНаследует RefCounted

Создайте собственный ZipReader, проверьте Open, затем GetFiles/FileExists/ReadFile и явный Close. Это RefCounted, не Resource; Dispose после использования. Open заменяет ранее открытый архив, закрывая его до новой попытки: при ошибке не рассчитывайте сохранить старый сеанс.

GetFiles возвращает плоский список реальных записей, включая каталоги с завершающим / и повторяющиеся имена. Виртуальные родительские каталоги не достраиваются. ReadFile читает всю распакованную запись в byte[], а не поток; пустой результат бывает и у пустого файла, и при диагностируемой ошибке. Сам метод не создаёт файлов на диске.

ReadFile использует Unicode-поиск пути движка, а FileExists/GetCompressionLevel — поиск minizip: при caseSensitive=false совпадение Unicode-регистра может различаться. Используйте точные имена из GetFiles. Повторяющиеся имена не означают версии: ReadFile выбирает первое совпадение. GetCompressionLevel выводит категорию из флагов ZIP, не исходный уровень упаковщика.

Windows headless-проверка и независимое чтение Python проверили наши небольшие архивы. Чтение повреждённых/огромных/ZIP64 архивов, извлечение на диск, лимиты памяти и межплатформенность не подтверждены. Имена из чужого архива не являются готовыми безопасными путями назначения для собственного извлечения.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ZipReaderКонструктор
# ZipReader
C#
public ZipReader();

Создаёт собственный закрытый читатель без открытого файла. После успешного Open используйте операции записей; Close проверяйте явно, затем Dispose объект.

Методы6

CloseError
# Close
C#
public Error Close();

Закрывает успешно открытый архив. Проверяйте Error.Ok; повторный Close закрытого объекта вызывает диагностику, это не идемпотентная операция. Не освобождает сам RefCounted-объект.

Возвращает Error

Error.Ok при успехе; иначе ошибка текущего этапа, не гарантия неизменности файла.

FileExistsbool
# FileExists
C#
public bool FileExists(string path, bool caseSensitive = true);

Проверяет нахождение и открытие записи, не целостность её содержимого. По умолчанию учитывает регистр; каталог требует реального имени с завершающим /. caseSensitive=false использует поиск minizip и для Unicode может расходиться с ReadFile.

Параметры
ИмяТипПо умолчанию
pathstring—
caseSensitivebooltrue
path

Точное имя записи внутри ZIP, обычно относительное с /; это не локальный путь назначения или источник данных.

caseSensitive

true учитывает регистр по умолчанию. false у ReadFile и FileExists/GetCompressionLevel использует разные реализации Unicode-поиска; предпочитайте точные имена из GetFiles.

Возвращает bool

true, если запись найдена и открывается; это не проверка CRC.

GetCompressionLevelint
# GetCompressionLevel
C#
public int GetCompressionLevel(string path, bool caseSensitive = true);

Возвращает категорию уровня из флагов заголовка minizip: обычно 1, 2, 6 или 9; при отсутствии/неудаче -1. Это не точный уровень исходного упаковщика: наша запись с уровнем 0 или 3 возвращает 6. caseSensitive=false использует тот же путь поиска, что FileExists, не ReadFile.

Параметры
ИмяТипПо умолчанию
pathstring—
caseSensitivebooltrue
path

Точное имя записи внутри ZIP, обычно относительное с /; это не локальный путь назначения или источник данных.

caseSensitive

true учитывает регистр по умолчанию. false у ReadFile и FileExists/GetCompressionLevel использует разные реализации Unicode-поиска; предпочитайте точные имена из GetFiles.

Возвращает int

Категория из флагов ZIP, не точный исходный уровень; -1 при отсутствии/неудаче.

GetFilesstring[]
# GetFiles
C#
public string[] GetFiles();

Возвращает новый string[] всех реальных имён записей в порядке обхода архива, включая каталоги с / и дубликаты. Не рекурсивно извлекает файлы и не достраивает отсутствующие родительские записи. Изменение массива не меняет архив.

Возвращает string[]

Новый массив реальных имён записей, включая каталоги и дубликаты.

OpenError
# Open
C#
public Error Open(string path);

Открывает файл ZIP через FileAccess для чтения. Если архив уже открыт, сначала закрывает его; новая ошибка не сохраняет прежний архив. Возвращает Error.Ok/Failed, не проверяет CRC всех записей при открытии.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла архива для FileAccess; для записи нужен доступный каталог и право записи. Это не имя записи внутри ZIP.

Возвращает Error

Error.Ok при успехе; иначе ошибка текущего этапа, не гарантия неизменности файла.

ReadFilebyte[]
# ReadFile
C#
public byte[] ReadFile(string path, bool caseSensitive = true);

Читает всю распакованную запись в независимый byte[]. Проверяет ошибки чтения и CRC при завершении; при ошибке возвращает пустой массив с диагностикой. Пустая запись тоже даёт пустой массив. Выделяет память по заявленному размеру; код проверяет границу INT_MAX, но большие/ZIP64 архивы этим обзором не приняты. Не извлекает на диск. При дубликатах выбирает первое имя.

Параметры
ИмяТипПо умолчанию
pathstring—
caseSensitivebooltrue
path

Точное имя записи внутри ZIP, обычно относительное с /; это не локальный путь назначения или источник данных.

caseSensitive

true учитывает регистр по умолчанию. false у ReadFile и FileExists/GetCompressionLevel использует разные реализации Unicode-поиска; предпочитайте точные имена из GetFiles.

Возвращает byte[]

Новый массив распакованных байтов; пустой для пустой записи или диагностируемой ошибки.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.