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
Дозволяє читати вміст ZIP-файлу.
Опис
Цей клас реалізує програму для читання, яка може витягувати вміст окремих файлів всередині ZIP-архіву. Див. також ZIPPacker.
# Читання одного файлу з ZIP-архіву.
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
# Витягніть усі файли з ZIP-архіву, зберігаючи каталоги всередині.
# Це діє аналогічно функції «Витягнути все» у більшості менеджерів архівів.
func extract_all_from_zip():
var reader = ZIPReader.new()
reader.open("res://archive.zip")
# Папка призначення для розпакованих файлів (ця папка має існувати до розпакування).
# Не всі ZIP-архіви зберігають усі файли в одній кореневій папці,
# що означає, що в ньому може бути створено кілька файлів/папок `root_dir` after extraction.
var root_dir = DirAccess.open("user://")
var files = reader.get_files()
for file_path in files:
# Якщо поточний запис є каталогом.
if file_path.ends_with("/"):
root_dir.make_dir_recursive(file_path)
continue
# Запис вмісту файлів, автоматичне створення папок за потреби.
# Не всі ZIP-архіви суворо впорядковані, тому нам потрібно зробити це на випадок
# Запис файлу розташовується перед записом папки.
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) 🔗
Повертає true, якщо файл існує у завантаженому zip-архіві.
Має бути викликаний після open().
int get_compression_level(path: String, case_sensitive: bool = true) 🔗
Повертає рівень стиснення файлу в завантаженому zip-архіві. Повертає -1, якщо файл не існує або сталася будь-яка інша помилка. Має викликатися після open().
PackedStringArray get_files() 🔗
Повертає список імен усіх файлів у завантаженому архіві.
Має бути викликаний після open().
Відкриває zip-архів за вказаним path та зчитує його індекс файлу.
PackedByteArray read_file(path: String, case_sensitive: bool = true) 🔗
Завантажує весь вміст файлу у завантаженому zip-архіві в пам'ять і повертає його.
Має бути викликаний після open().