ZIPPacker

继承: RefCounted < Object

允许创建 ZIP 文件。

描述

该类实现了能够在 ZIP 压缩包中存储多个数据块的写入器。另见 ZIPReaderPCKPacker

# 创建 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

开启文件时不使用压缩。也叫做“存储”压缩模式,是最快的在 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() 之后调用。