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.

ZIPPacker

Eredita: RefCounted < Object

Consente la creazione di file ZIP.

Descrizione

Questa classe implementa uno scrittore che permette di memorizzare vari blob in un archivio ZIP. Vedi anche ZIPReader e PCKPacker

# Crea un archivio ZIP con un solo file nella sua radice.
func write_zip_file():
    var writer = ZIPPacker.new()
    var err = writer.open("user://archive.zip")
    if err != OK:
        return err
    writer.start_file("hello.txt")
    writer.write_file("Hello World".to_utf8_buffer())
    writer.close_file()

    writer.close()
    return OK

Proprietà

int

compression_level

-1

Metodi

Error

add_directory(path: String, permissions: BitField[UnixPermissionFlags] = 493, modified_time: int = 0)

Error

close()

Error

close_file()

Error

open(path: String, append: ZipAppend = 0)

Error

start_file(path: String, permissions: BitField[UnixPermissionFlags] = 420, modified_time: int = 0)

Error

write_file(data: PackedByteArray)


Enumerazioni

enum ZipAppend: 🔗

ZipAppend APPEND_CREATE = 0

Crea un nuovo archivio zip sul percorso fornito.

ZipAppend APPEND_CREATEAFTER = 1

Appende un nuovo archivio zip alla fine del file già esistente al percorso fornito.

ZipAppend APPEND_ADDINZIP = 2

Aggiunge nuovi file all'archivio zip esistente al percorso dato.


enum CompressionLevel: 🔗

CompressionLevel COMPRESSION_DEFAULT = -1

Comincia un file con il livello di compressione predefinito Deflate (6). Questo è un buon compromesso tra velocità e dimensioni del file.

CompressionLevel COMPRESSION_NONE = 0

Comincia un file senza compressione. Questa è anche nota come modalità di compressione "Archivia" ed è il metodo più veloce per comprimere i file in un archivio ZIP. Si consiglia di utilizzare questa modalità per i file già compressi (come JPEG, PNG, MP3 o Ogg Vorbis).

CompressionLevel COMPRESSION_FAST = 1

Comincia un file con il livello di compressione Deflate più veloce (1). Questo è veloce da comprimere, ma produce file di dimensioni maggiori rispetto a COMPRESSION_DEFAULT. La velocità di decompressione non è generalmente influenzata dal livello di compressione scelto.

CompressionLevel COMPRESSION_BEST = 9

Comincia un file con il miglior livello di compressione Deflate (9). Questo è lento da comprimere, ma produce file di dimensioni più piccole di COMPRESSION_DEFAULT. La velocità di decompressione non è generalmente influenzata dal livello di compressione scelto.


Descrizioni delle proprietà

int compression_level = -1 🔗

  • void set_compression_level(value: int)

  • int get_compression_level()

Il livello di compressione utilizzato quando viene chiamato start_file(). Utilizza CompressionLevel come riferimento.


Descrizioni dei metodi

Error add_directory(path: String, permissions: BitField[UnixPermissionFlags] = 493, modified_time: int = 0) 🔗

Aggiunge la cartella all'archivio. Se modified_time è impostato su 0, viene utilizzata l'ora attuale del sistema.

Nota: Le cartelle vengono create automaticamente quando viene chiamato start_file(). Utilizzare questa funzione prima di aggiungere i file per creare cartelle con permessi e data di modifica personalizzati.


Error close() 🔗

Chiude le risorse sottostanti utilizzate da questa istanza.


Error close_file() 🔗

Smette di scrivere in un file all'interno dell'archivio.

Fallirà se non c'è un file aperto.


Error open(path: String, append: ZipAppend = 0) 🔗

Apre un file zip per la scrittura sul percorso indicato utilizzando la modalità di scrittura specificata.

Questo deve essere chiamato prima di tutto il resto.


Error start_file(path: String, permissions: BitField[UnixPermissionFlags] = 420, modified_time: int = 0) 🔗

Inizia a scrivere in un file all'interno dell'archivio. Solamente un file può essere scritto allo stesso tempo. Se modified_time è impostato su 0, viene utilizzata l'ora attuale del sistema.

Deve essere chiamato dopo open().


Error write_file(data: PackedByteArray) 🔗

Scrivere i dati data al file.

Deve essere chiamato dopo start_file().