Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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
属性
|
方法
add_directory(path: String, permissions: BitField[UnixPermissionFlags] = 493, modified_time: int = 0) |
|
close() |
|
start_file(path: String, permissions: BitField[UnixPermissionFlags] = 420, modified_time: int = 0) |
|
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 要小。解压速度通常不受压缩级别的影响。
属性说明
调用 start_file() 时使用的压缩级别。请参考 CompressionLevel。
方法说明
Error add_directory(path: String, permissions: BitField[UnixPermissionFlags] = 493, modified_time: int = 0) 🔗
将目录添加到归档文件中。如果 modified_time 被设置为 0,则使用当前系统时间。
注意: 调用 start_file() 时会自动创建目录,若要创建具有自定义权限和修改时间的目录,请在添加文件前调用此函数。
关闭该实例底层所使用的资源。
停止向归档中的文件进行写入。
如果没有打开文件,则会失败。
Error open(path: String, append: ZipAppend = 0) 🔗
打开给定路径处的 Zip 文件,使用指定的写入模式进行写入。
必须在其他调用前调用。
Error start_file(path: String, permissions: BitField[UnixPermissionFlags] = 420, modified_time: int = 0) 🔗
开始向压缩包内的文件写入数据。同一时间只能写入一个文件。如果将 modified_time 设置为 0,则会使用当前的系统时间。
必须在调用 open() 之后才能调用此方法。
Error write_file(data: PackedByteArray) 🔗
将给定的 data 写到文件中。
需要在 start_file() 之后调用。