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().