ZIPPacker

Наследует: RefCounted < Object

Позволяет создавать ZIP-файлы.

Описание

Этот класс реализует модуль записи, который позволяет хранить несколько больших двоичных объектов в ZIP-архиве. Смотрите также ZIPReader и PCKPacker.

# Создайте ZIP-архив с одним файлом в корне.
func write_zip_file():
    var writer = ZIPPacker.new()
    var err = writer.open("user://archive.zip")
    if err != OK:
        return err
    writer.start_file("hello.txt")
    writer.write_file("Hello World".to_utf8_buffer())
    writer.close_file()

    writer.close()
    return OK

Свойства

int

compression_level

-1

Методы

Error

close()

Error

close_file()

Error

open(path: String, append: ZipAppend = 0)

Error

start_file(path: String)

Error

write_file(data: PackedByteArray)


Перечисления

enum ZipAppend: 🔗

ZipAppend APPEND_CREATE = 0

Создать новый zip-архив по указанному пути.

ZipAppend APPEND_CREATEAFTER = 1

Добавить новый zip-архив в конец существующего файла по указанному пути.

ZipAppend APPEND_ADDINZIP = 2

Добавить новые файлы в существующий zip-архив по указанному пути.


enum CompressionLevel: 🔗

CompressionLevel COMPRESSION_DEFAULT = -1

Запустите файл с уровнем сжатия Deflate по умолчанию (6). Это хороший компромисс между скоростью и размером файла.

CompressionLevel COMPRESSION_NONE = 0

Запустите файл без сжатия. Это также известно как режим сжатия "Store" и является самым быстрым методом упаковки файлов в архив ZIP. Рассмотрите возможность использования этого режима для уже сжатых файлов (например, файлов JPEG, PNG, MP3 или Ogg Vorbis).

CompressionLevel COMPRESSION_FAST = 1

Запустите файл с самым быстрым уровнем сжатия Deflate (1). Это обеспечивает быстрое сжатие, но приводит к увеличению размера файла по сравнению с COMPRESSION_DEFAULT. Скорость распаковки обычно не зависит от выбранного уровня сжатия.

CompressionLevel COMPRESSION_BEST = 9

Создайте файл с оптимальным уровнем сжатия Deflate (9). Этот вариант сжатия медленнее, но размер файла меньше, чем у COMPRESSION_DEFAULT. Скорость распаковки, как правило, не зависит от выбранного уровня сжатия.


Описания свойств

int compression_level = -1 🔗

  • void set_compression_level(value: int)

  • int get_compression_level()

Уровень сжатия, используемый при вызове start_file(). Используйте CompressionLevel в качестве значений.


Описания метода

Error close() 🔗

Закрывает основные ресурсы, используемые этим экземпляром.


Error close_file() 🔗

Прекращает запись в файл внутри архива.

Это приведет к сбою, если нет открытого файла.


Error open(path: String, append: ZipAppend = 0) 🔗

Открывает zip-файл для записи по указанному пути, используя указанный режим записи.

Должен вызываться прежде всего остального.


Error start_file(path: String) 🔗

Начинает запись в файл внутри архива. Одновременно может быть записан только один файл.

Должен вызываться после open().


Error write_file(data: PackedByteArray) 🔗

Записать полученный data в файл.

Должен вызываться после start_file().