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...
ZIPReader
繼承: RefCounted < Object
Allows reading the content of a ZIP file.
說明
This class implements a reader that can extract the content of individual files inside a ZIP archive. See also ZIPPacker.
# Read a single file from a ZIP archive.
func read_zip_file():
var reader = ZIPReader.new()
var err = reader.open("user://archive.zip")
if err != OK:
return PackedByteArray()
var res = reader.read_file("hello.txt")
reader.close()
return res
# Extract all files from a ZIP archive, preserving the directories within.
# This acts like the "Extract all" functionality from most archive managers.
func extract_all_from_zip():
var reader = ZIPReader.new()
reader.open("res://archive.zip")
# Destination directory for the extracted files (this folder must exist before extraction).
# Not all ZIP archives put everything in a single root folder,
# which means several files/folders may be created in `root_dir` after extraction.
var root_dir = DirAccess.open("user://")
var files = reader.get_files()
for file_path in files:
# If the current entry is a directory.
if file_path.ends_with("/"):
root_dir.make_dir_recursive(file_path)
continue
# Write file contents, creating folders automatically when needed.
# Not all ZIP archives are strictly ordered, so we need to do this in case
# the file entry comes before the folder entry.
root_dir.make_dir_recursive(root_dir.get_current_dir().path_join(file_path).get_base_dir())
var file = FileAccess.open(root_dir.get_current_dir().path_join(file_path), FileAccess.WRITE)
var buffer = reader.read_file(file_path)
file.store_buffer(buffer)
方法
close() |
|
file_exists(path: String, case_sensitive: bool = true) |
|
get_compression_level(path: String, case_sensitive: bool = true) |
|
方法說明
關閉該實例底層所使用的資源。
bool file_exists(path: String, case_sensitive: bool = true) 🔗
如果載入的 zip 存檔中存在對應的檔,則返回 true。
必須在 open() 之後呼叫。
int get_compression_level(path: String, case_sensitive: bool = true) 🔗
Returns the compression level of the file in the loaded zip archive. Returns -1 if the file doesn't exist or any other error occurs. Must be called after open().
PackedStringArray get_files() 🔗
返回載入的存檔中所有檔的名稱列表。
必須在 open() 之後呼叫。
打開給定 path 的壓縮檔,並讀取其檔索引。
PackedByteArray read_file(path: String, case_sensitive: bool = true) 🔗
將載入的 zip 存檔中檔的全部內容載入到記憶體中並返回它。
必須在 open() 之後呼叫。