Files
godot-docs-l10n/classes/fr/class_zipreader.rst

171 lines
8.8 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_ZIPReader:
ZIPReader
=========
**Hérite de:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Permet de lire le contenu d'un fichier ZIP.
.. rst-class:: classref-introduction-group
Description
-----------
Cette classe implémente un lecteur qui peut extraire le contenu de fichiers individuels dans une archive ZIP. Voir aussi :ref:`ZIPPacker<class_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)
.. rst-class:: classref-reftable-group
Méthodes
----------------
.. table::
:widths: auto
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`close<class_ZIPReader_method_close>`\ (\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`file_exists<class_ZIPReader_method_file_exists>`\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_compression_level<class_ZIPReader_method_get_compression_level>`\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_files<class_ZIPReader_method_get_files>`\ (\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`open<class_ZIPReader_method_open>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`read_file<class_ZIPReader_method_read_file>`\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) |
+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descriptions des méthodes
--------------------------------------------------
.. _class_ZIPReader_method_close:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **close**\ (\ ) :ref:`🔗<class_ZIPReader_method_close>`
Ferme les ressources sous-jacentes utilisées par cette instance.
.. rst-class:: classref-item-separator
----
.. _class_ZIPReader_method_file_exists:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **file_exists**\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) :ref:`🔗<class_ZIPReader_method_file_exists>`
Renvoie ``true`` si le fichier existe dans l'archive zip chargée.
Doit être appelée après :ref:`open()<class_ZIPReader_method_open>`.
.. rst-class:: classref-item-separator
----
.. _class_ZIPReader_method_get_compression_level:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_compression_level**\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) :ref:`🔗<class_ZIPReader_method_get_compression_level>`
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 :ref:`open()<class_ZIPReader_method_open>`.
.. rst-class:: classref-item-separator
----
.. _class_ZIPReader_method_get_files:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_files**\ (\ ) :ref:`🔗<class_ZIPReader_method_get_files>`
Renvoie la liste des noms de tous les fichiers de l'archive chargée.
Doit être appelée après :ref:`open()<class_ZIPReader_method_open>`.
.. rst-class:: classref-item-separator
----
.. _class_ZIPReader_method_open:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **open**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_ZIPReader_method_open>`
Ouvre l'archive zip au chemin ``path`` donné et lit son index de fichier.
.. rst-class:: classref-item-separator
----
.. _class_ZIPReader_method_read_file:
.. rst-class:: classref-method
:ref:`PackedByteArray<class_PackedByteArray>` **read_file**\ (\ path\: :ref:`String<class_String>`, case_sensitive\: :ref:`bool<class_bool>` = true\ ) :ref:`🔗<class_ZIPReader_method_read_file>`
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 :ref:`open()<class_ZIPReader_method_open>`.
.. |virtual| replace:: :abbr:`virtual (Cette méthode doit typiquement être redéfinie par l'utilisateur pour avoir un effet.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Cette méthode n'a pas d'effets de bord. Elle ne modifie aucune des variables membres de l'instance.)`
.. |vararg| replace:: :abbr:`vararg (Cette méthode accepte n'importe quel nombre d'arguments après ceux décris ici.)`
.. |constructor| replace:: :abbr:`constructor (Cette méthode est utilisée pour construire un type.)`
.. |static| replace:: :abbr:`static (Cette méthode n'a pas besoin d'instance pour être appelée, elle peut donc être directement appelée en utilisant le nom de la classe.)`
.. |operator| replace:: :abbr:`operator (Cette méthode décrit un opérateur valide à utiliser avec ce type en tant qu'opérande gauche.)`
.. |bitfield| replace:: :abbr:`BitField (Cette valeur est un nombre entier composé d'un masque de bits des options suivantes.)`
.. |void| replace:: :abbr:`void (Aucune valeur de retour.)`