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
Hérite de : RefCounted < Object
Permet de lire le contenu d'un fichier ZIP.
Description
Cette classe implémente un lecteur qui peut extraire le contenu de fichiers individuels dans une archive ZIP. Voir aussi ZIPPacker.
# Lire un seul fichier d'un fichier ZIP.
func read_zip_file():
var lecteur = ZIPReader.new()
var err = lecteur.open("user://archive.zip")
if err != OK:
return PackedByteArray()
var res = lecteur.read_file("hello.txt")
lecteur.close()
return res
# Extraire tous les fichiers de l'archive ZIP, préservant les dossiers dedans.
# Cela fonctionne comme la fonctionnalité "Tout Extraire" des gestionnaires d'archive.
func extract_all_from_zip():
var lecteur = ZIPReader.new()
lecteur.open("res://archive.zip")
# Dossier de destination pour les fichiers extraits (ce dossier doit exister avant l'extraction).
# Les archives ZIP ne mettent pas toujours tout dans un dossier racine
# ce qui signifie que des fichiers/dossiers peuvent être créés dans le dossier `doss_racine` après l'extraction.
var doss_racine = DirAccess.open("user://")
var fichiers = lecteur.get_files()
for chemin_fichier in fichiers:
# Si l'entrée actuelle est un dossier.
if chemin_fichier.ends_with("/"):
doss_racine.make_dir_recursive(chemin_fichier)
continue
# Écrire le contenu du fichier, créant automatiquement les dossiers si besoin.
# Les archives ZIP ne sont pas triées strictement, nous devons donc faire ceci au cas où
# l'entrée du fichier arrive avant l'entrée du dossier.
doss_racine.make_dir_recursive(doss_racine.get_current_dir().path_join(chemin_fichier).get_base_dir())
var fichier = FileAccess.open(doss_racine.get_current_dir().path_join(chemin_fichier), FileAccess.WRITE)
var buffer = lecteur.read_file(chemin_fichier)
fichier.store_buffer(buffer)
Méthodes
close() |
|
file_exists(path: String, case_sensitive: bool = true) |
|
get_compression_level(path: String, case_sensitive: bool = true) |
|
Descriptions des méthodes
Ferme les ressources sous-jacentes utilisées par cette instance.
bool file_exists(path: String, case_sensitive: bool = true) 🔗
Renvoie true si le fichier existe dans l'archive zip chargée.
Doit être appelée après open().
int get_compression_level(path: String, case_sensitive: bool = true) 🔗
Renvoie le niveau de compression du fichier dans l'archive zip chargée. Renvoie -1 si le fichier n'existe pas ou si une autre erreur se produit. Doit être appelée après open().
PackedStringArray get_files() 🔗
Renvoie la liste des noms de tous les fichiers de l'archive chargée.
Doit être appelée après open().
Ouvre l'archive zip au chemin path donné et lit son index de fichier.
PackedByteArray read_file(path: String, case_sensitive: bool = true) 🔗
Charge l'intégralité du contenu d'un fichier dans l'archive zip chargée en mémoire et le renvoie.
Doit être appelée après open().