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...
FileAccess
Eredita: RefCounted < Object
Fornisce metodi per le operazioni di lettura e scrittura dei file.
Descrizione
Questa classe può essere utilizzata per memorizzare in modo permanente i dati nel file system del dispositivo utente e per leggerli. È utile per memorizzare i dati di salvataggio o i file di configurazione di gioco.
Esempio: Come scrivere e leggere da un file. Il file denominato "save_game.dat" sarà memorizzato nella cartella dei dati utente, come specificato nella documentazione Percorsi dati:
func save_to_file(content):
var file = FileAccess.open("user://save_game.dat", FileAccess.WRITE)
file.store_string(content)
func load_from_file():
var file = FileAccess.open("user://save_game.dat", FileAccess.READ)
var content = file.get_as_text()
return content
public void SaveToFile(string content)
{
using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Write);
file.StoreString(content);
}
public string LoadFromFile()
{
using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Read);
string content = file.GetAsText();
return content;
}
Un'istanza di FileAccess ha il proprio cursore del file, che rappresenta la posizione in byte nel file in cui sarà eseguita la prossima operazione di lettura/scrittura. Funzioni come get_8(), get_16(), store_8() e store_16() sposteranno il cursore in avanti del numero di byte letti/scritti. È possibile spostare il cursore in una posizione specifica tramite seek() o seek_end(), e recuperare la sua posizione tramite get_position().
Un'istanza di FileAccess chiuderà il suo file quando l'istanza viene liberata. Poiché eredita RefCounted, ciò avviene automaticamente quando non è più in uso. È possibile chiamare il metodo close() per chiuderlo prima. In C#, il riferimento deve essere eliminato manualmente, il che si può fare con l'istruzione using o chiamando direttamente il metodo Dispose.
Nota: Per accedere alle risorse del progetto una volta esportate, si consiglia di utilizzare ResourceLoader invece di FileAccess, poiché alcuni file vengono convertiti in formati specifici del motore e i loro file sorgente originali potrebbero non essere presenti nel pacchetto PCK esportato. Se si utilizza FileAccess, assicurarsi che il file sia incluso nell'esportazione modificandone la modalità di importazione in Mantieni file (esportato così com'è) nel pannello di importazione oppure, per i file in cui questa opzione non è disponibile, modificare il filtro di esportazione di non risorse nella finestra di dialogo Esporta per includere l'estensione dei file (ad esempio *.txt).
Nota: I file si chiudono automaticamente solo se il processo esce "normalmente" (ad esempio cliccando sul pulsante di chiusura del gestore delle finestre o premendo Alt + F4). Se l'esecuzione del progetto è interrotta premendo F8 mentre il progetto è in esecuzione, il file non si chiuderà perché il processo di gioco sarà terminato. È possibile aggirare questo problema chiamando flush() a intervalli regolari.
Tutorial
Proprietà
Metodi
Enumerazioni
enum ModeFlags: 🔗
ModeFlags READ = 1
Apre il file per operazioni di sola lettura. Il cursore viene posizionato all'inizio del file.
ModeFlags WRITE = 2
Apre il file per operazioni di sola scrittura. Se il file esiste, viene troncato a lunghezza zero e il suo contenuto viene cancellato. Altrimenti, viene creato.
Nota: Quando si crea un file, esso deve trovarsi in una cartella già esistente. Per creare cartelle ricorsivamente per un percorso di file, vedi DirAccess.make_dir_recursive().
ModeFlags READ_WRITE = 3
Apre il file per operazioni di lettura e scrittura. Non tronca il file. Il cursore è posizionato all'inizio del file.
ModeFlags WRITE_READ = 7
Apre il file per operazioni di lettura e scrittura. Se il file esiste, viene troncato a lunghezza zero e il suo contenuto viene cancellato. Altrimenti, viene creato. Il cursore è posizionato all'inizio del file.
Nota: Quando si crea un file, esso deve trovarsi in una cartella già esistente. Per creare cartelle ricorsivamente per un percorso di file, vedi DirAccess.make_dir_recursive().
enum CompressionMode: 🔗
CompressionMode COMPRESSION_FASTLZ = 0
Usa il metodo di compressione FastLZ.
CompressionMode COMPRESSION_DEFLATE = 1
Usa il metodo di compressione DEFLATE.
CompressionMode COMPRESSION_ZSTD = 2
Usa il metodo di compressione ]Zstandard.
CompressionMode COMPRESSION_GZIP = 3
Usa il metodo di compressione gzip.
CompressionMode COMPRESSION_BROTLI = 4
Utilizza il metodo di compressione brotli (solo la decompressione è supportata).
flags UnixPermissionFlags: 🔗
UnixPermissionFlags UNIX_READ_OWNER = 256
Bit di lettura per il proprietario.
UnixPermissionFlags UNIX_WRITE_OWNER = 128
Bit di scrittura per il proprietario.
UnixPermissionFlags UNIX_EXECUTE_OWNER = 64
Bit di esecuzione per il proprietario.
UnixPermissionFlags UNIX_READ_GROUP = 32
Bit di lettura per il gruppo.
UnixPermissionFlags UNIX_WRITE_GROUP = 16
Bit di scrittura per il gruppo.
UnixPermissionFlags UNIX_EXECUTE_GROUP = 8
Bit di esecuzione per il gruppo.
UnixPermissionFlags UNIX_READ_OTHER = 4
Bit di lettura per altri.
UnixPermissionFlags UNIX_WRITE_OTHER = 2
Bit di scrittura per altri.
UnixPermissionFlags UNIX_EXECUTE_OTHER = 1
Bit di esecuzione per altri.
UnixPermissionFlags UNIX_SET_USER_ID = 2048
Bit di impostazione dell'id utente all'esecuzione.
UnixPermissionFlags UNIX_SET_GROUP_ID = 1024
Bit di impostazione dell'id gruppo all'esecuzione.
UnixPermissionFlags UNIX_RESTRICTED_DELETE = 512
Bit di eliminazione riservata (permanente).
Descrizioni delle proprietà
Se true, il file viene letto con l'ordine dei byte big-endian. Se false, il file viene letto con little-endian. In caso di dubbi, lascia questo su false poiché la maggior parte dei file viene scritta con l'ordine little-endian.
Nota: Questo è sempre reimpostato sull'ordine dei byte del sistema, che è little-endian su tutte le piattaforme supportate, ogni volta che si apre il file. Pertanto, bisogna impostare big_endian dopo aver aperto il file, non prima.
Descrizioni dei metodi
void close() 🔗
Chiude il file attualmente aperto e impedisce ulteriori operazioni di lettura o scrittura. Usa flush() per rendere persistenti i dati sul disco senza chiudere il file.
Nota: FileAccess si chiuderà automaticamente quando viene liberato, il che accade quando esce dall'ambito o quando gli viene assegnato null. In C# il riferimento deve essere eliminato manualmente, il che può essere fatto con l'istruzione using o chiamando direttamente il metodo Dispose.
FileAccess create_temp(mode_flags: ModeFlags, prefix: String = "", extension: String = "", keep: bool = false) static 🔗
Crea un file temporaneo. Questo file verrà liberato quando verrà liberato il FileAccess restituito.
Se prefix non è vuoto, verrà prefissato al nome del file, separato da -.
Se extension non è vuoto, verrà suffissato al nome del file temporaneo.
Se keep è true, il file non verrà eliminato quando verrà liberato il FileAccess restituito.
Restituisce null se l'apertura del file non è riuscita. È possibile usare get_open_error() per controllare l'errore che si è verificato.
Restituisce true se il cursore del file ha già letto oltre la fine del file.
Nota: eof_reached() == false non può essere utilizzato per verificare se sono disponibili altri dati. Per effettuare un ciclo mentre sono disponibili altri dati, utilizza:
while file.get_position() < file.get_length():
# Leggi i dati
while (file.GetPosition() < file.GetLength())
{
// Leggi i dati
}
bool file_exists(path: String) static 🔗
Restituisce true se il file esiste nel percorso specificato.
Nota: Molti tipi di risorse sono importati (ad esempio texture o file audio) e la loro risorsa sorgente non sarà inclusa nel gioco esportato, poiché solo la versione importata è utilizzata. Vedi ResourceLoader.exists() per un approccio alternativo che tenga conto della rimappatura delle risorse.
Per un equivalente relativo non statico, utilizza DirAccess.file_exists().
void flush() 🔗
Scrive il buffer del file sul disco. Lo svuotamento viene eseguito automaticamente quando il file viene chiuso. Ciò significa che non è necessario chiamare flush() manualmente prima di chiudere un file. Tuttavia, flush() può essere utilizzato per garantire che i dati siano al sicuro anche se il progetto si blocca invece di essere chiuso correttamente.
Nota: Chiama flush() solo quando è effettivamente necessario. Altrimenti, diminuirà le prestazioni a causa delle scritture costanti sul disco.
Restituisce i prossimi 8 bit del file interpretati come un intero. Questo fa avanzare il cursore del file di 1 byte. Vedi store_8() per i dettagli su quali valori si possono memorizzare e recuperare in questo modo.
Restituisce i prossimi 16 bit del file interpretati come un intero. Questo fa avanzare il cursore del file di 2 byte. Vedi store_16() per i dettagli su quali valori si possono memorizzare e recuperare in questo modo.
Restituisce i prossimi 32 bit del file interpretati come un intero. Questo fa avanzare il cursore del file di 4 byte. Vedi store_32() per i dettagli su quali valori si possono memorizzare e recuperare in questo modo.
Restituisce i prossimi 64 bit del file interpretati come un intero. Questo fa avanzare il cursore del file di 8 byte. Vedi store_64() per i dettagli su quali valori si possono memorizzare e recuperare in questo modo.
int get_access_time(file: String) static 🔗
Restituisce l'ultima volta che il file al percorso file vi è stato accesso nel formato timestamp Unix, oppure 0 in caso di errore. Questo timestamp Unix può essere convertito in un altro formato attraverso il singleton Time.
Restituisce l'intero file come String. Il testo è interpretato come codificato in UTF-8. Questo ignora il cursore del file e non lo influenza.
PackedByteArray get_buffer(length: int) const 🔗
Restituisce i prossimi length byte del file come PackedByteArray. Questo fa avanzare il cursore del file di length byte.
PackedStringArray get_csv_line(delim: String = ",") const 🔗
Restituisce il valore successivo del file in formato CSV (Comma-Separated Values). È possibile passare un delimitatore diverso delim da usare diverso da quello predefinito "," (la virgola). Questo delimitatore deve essere di un solo carattere e non può essere una virgoletta doppia.
Il testo è interpretato come codificato in UTF-8. I valori nel testo devono essere racchiusi tra virgolette doppie se includono il carattere delimitatore. Si possono evitare le virgolette doppie all'interno di un valore nel testo raddoppiando le loro occorrenze. Questo fa avanzare il cursore del file fino a dopo il carattere di nuova riga alla fine della riga.
Ad esempio, le seguenti righe CSV sono valide e saranno elaborate correttamente come due stringhe ciascuna:
Alice,"Ciao, Bob!"
Bob,Alice! Che sorpresa!
Alice,"Pensavo che avresti risposto con ""Ciao, mondo""."
Nota come la seconda riga possa omettere le virgolette attorno, poiché non include il delimitatore. Tuttavia potrebbe benissimo usare le virgolette, ed è stata scritta senza solo per dimostrazione. La terza riga deve usare "" per ogni virgoletta che deve essere interpretata come tale invece che come fine di un valore del testo.
Restituisce i prossimi 64 bit del file interpretandoli come numero in virgola mobile. Questo fa avanzare il cursore del file di 8 byte.
Restituisce l'ultimo errore che si è verificato durante l'esecuzione di un operazione. Gli errori possibili sono le costanti ERR_FILE_* di Error.
PackedByteArray get_extended_attribute(file: String, attribute_name: String) static 🔗
Reads the file extended attribute with name attribute_name as a byte array.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
String get_extended_attribute_string(file: String, attribute_name: String) static 🔗
Reads the file extended attribute with name attribute_name as a UTF-8 encoded string.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
PackedStringArray get_extended_attributes_list(file: String) static 🔗
Returns a list of file extended attributes.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
PackedByteArray get_file_as_bytes(path: String) static 🔗
Restituisce l'intero contenuto del file al percorso path come un PackedByteArray senza alcuna decodifica.
Restituisce un PackedByteArray vuoto se si è verificato un errore durante l'apertura del file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
String get_file_as_string(path: String) static 🔗
Restituisce l'intero contenuto del file al percorso path come String. Il testo è interpretato come codificato in UTF-8.
Restituisce una String vuota se si è verificato un errore durante l'apertura del file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
Restituisce i prossimi 32 bit del file interpretandoli come numero in virgola mobile. Questo fa avanzare il cursore del file di 4 byte.
Restituisce i prossimi 16 bit del file interpretandoli come numero in virgola mobile a mezza precisione. Questo fa avanzare il cursore del file di 2 byte.
Restituisce true, se l'attributo hidden (nascosto) è impostato sul file al percorso specificato.
Nota: Questo metodo è implementato su iOS, BSD, macOS e Windows.
Restituisce la dimensione del file in byte. Per una pipe, restituisce il numero di byte disponibili per la lettura dalla pipe.
Restituisce la riga successiva del file come String. La stringa restituita non include caratteri di nuova riga (\n) o di ritorno a capo (\r), ma include qualsiasi altro spazio vuoto iniziale o finale. Questo fa avanzare il cursore del file fino a dopo il carattere di nuova riga alla fine della riga.
Il testo è interpretato come codificato in UTF-8.
String get_md5(path: String) static 🔗
Restituisce l'hash MD5 che rappresenta il file nel percorso specificato oppure una String vuota in caso di errore.
int get_modified_time(file: String) static 🔗
Restituisce l'ultima volta che il file al percorso file è stato modificato nel formato timestamp Unix, oppure 0 in caso di errore. Questo timestamp Unix può essere convertito in un altro formato attraverso il singleton Time.
Error get_open_error() static 🔗
Restituisce il risultato dell'ultima chiamata a open() nel thread attuale.
Restituisce una String salvata in formato Pascal dal file, il che significa che la lunghezza della stringa è memorizzata esplicitamente all'inizio. Vedi store_pascal_string(). Può includere caratteri di nuova riga. Il cursore del file avanza dopo la lettura dei byte.
Il testo è interpretato come codificato in UTF-8.
Restituisce il percorso come String per il file attualmente aperto.
String get_path_absolute() const 🔗
Restituisce il percorso assoluto come String per il file attualmente aperto.
Restituisce la posizione del cursore del file in byte dall'inizio del file. Questo è il cursore di lettura/scrittura del file impostato da seek() o seek_end() e avanzato dalle operazioni di lettura/scrittura.
bool get_read_only_attribute(file: String) static 🔗
Restituisce true, se l'attributo read only (sola lettura) è impostato sul file al percorso specificato.
Nota: Questo metodo è implementato su iOS, BSD, macOS e Windows.
Restituisce i prossimi bit dal file come numero in virgola mobile. Questo fa avanzare il cursore del file di 4 o 8 byte, a seconda della precisione utilizzata dalla build di Godot che ha salvato il file.
Se il file è stato salvato da una build di Godot compilata con l'opzione precision=single (predefinito), il numero di bit letti per quel file sono 32. Altrimenti, se compilata con l'opzione precision=double, il numero di bit letti è 64.
String get_sha256(path: String) static 🔗
Restituisce una String SHA-256 che rappresenta il file nel percorso specificato o una String vuota in caso di errore.
int get_size(file: String) static 🔗
Returns the size of the file at the given path, in bytes, or -1 on error.
BitField[UnixPermissionFlags] get_unix_permissions(file: String) static 🔗
Returns the UNIX permissions of the file at the given path.
Note: This method is implemented on iOS, Linux/BSD, and macOS.
Variant get_var(allow_objects: bool = false) const 🔗
Restituisce il prossimo valore Variant dal file. Se allow_objects è true, è permesso decodificare gli oggetti. Questo fa avanzare il cursore del file del numero di byte letti.
Internamente, questo metodo utilizza lo stesso meccanismo di codifica del metodo @GlobalScope.var_to_bytes(), come descritto nella documentazione dell'API di serializzazione binaria.
Attenzione: Un oggetto deserializzato può contenere codice che verrà eseguito. Non usare questa opzione se l'oggetto serializzato arriva da fonti sconosciute per evitare eventuali rischi di sicurezza come l'esecuzione di codice remoto.
Restituisce true se il file è attualmente aperto.
FileAccess open(path: String, flags: ModeFlags) static 🔗
Crea un nuovo oggetto FileAccess e apre il file per la scrittura o la lettura, a seconda dei flag.
Restituisce null se non è stato possibile aprire il file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
FileAccess open_compressed(path: String, mode_flags: ModeFlags, compression_mode: CompressionMode = 0) static 🔗
Crea un nuovo oggetto FileAccess e apre un file compresso per la lettura o la scrittura.
Nota: open_compressed() può leggere solo i file salvati da Godot, non i formati di compressione di terze parti. Consulta GitHub Issue n. 28999 per una soluzione alternativa.
Restituisce null se non è stato possibile aprire il file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
FileAccess open_encrypted(path: String, mode_flags: ModeFlags, key: PackedByteArray, iv: PackedByteArray = PackedByteArray()) static 🔗
Crea un nuovo oggetto FileAccess e apre un file crittografato in modalità di scrittura o lettura. Bisogna passare una chiave binaria per crittografarlo o decrittografarlo.
Nota: La chiave fornita deve essere lunga 32 byte.
Restituisce null se non è stato possibile aprire il file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
FileAccess open_encrypted_with_pass(path: String, mode_flags: ModeFlags, pass: String) static 🔗
Crea un nuovo oggetto FileAccess e apre un file crittografato in modalità di scrittura o lettura. Bisogna passare una password per crittografarlo o decrittografarlo.
Restituisce null se non è stato possibile aprire il file. È possibile usare get_open_error() per controllare l'errore che si è verificato.
Error remove_extended_attribute(file: String, attribute_name: String) static 🔗
Removes file extended attribute with name attribute_name.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
Ridimensiona il file a una lunghezza specificata. Il file deve essere aperto in una modalità che ne permetta la scrittura. Se il file è esteso, sono accodati caratteri NUL. Se il file è troncato, tutti i dati dal file finale alla lunghezza originale del file sono persi.
Sposta il cursore del file alla posizione specificata in byte, dall'inizio del file. Questo cambia il valore restituito da get_position().
void seek_end(position: int = 0) 🔗
Sposta il cursore del file alla posizione specificata in byte, dalla fine del file. Questo cambia il valore restituito da get_position().
Nota: Questo è un offset, quindi si dovrebbero usare numeri negativi altrimenti il cursore si sposterà oltre la fine del file.
Error set_extended_attribute(file: String, attribute_name: String, data: PackedByteArray) static 🔗
Writes file extended attribute with name attribute_name as a byte array.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
Error set_extended_attribute_string(file: String, attribute_name: String, data: String) static 🔗
Writes file extended attribute with name attribute_name as a UTF-8 encoded string.
Note: This method is implemented on Linux, macOS, and Windows.
Note: Extended attributes support depends on the file system. Attributes will be lost when the file is moved between incompatible file systems.
Note: On Linux, only "user" namespace attributes are accessible, namespace prefix should not be included.
Note: On Windows, alternate data streams are used to store extended attributes.
Imposta l'attributo hidden (nascosto) del file.
Nota: Questo metodo è implementato su iOS, BSD, macOS, e Windows.
Error set_read_only_attribute(file: String, ro: bool) static 🔗
Imposta l'attributo read only (sola lettura) del file.
Nota: Questo metodo è implementato su iOS, BSD, macOS, e Windows.
Error set_unix_permissions(file: String, permissions: BitField[UnixPermissionFlags]) static 🔗
Imposta i permessi UNIX del file.
Nota: Questo metodo è implementato su iOS, BSD, macOS, e Windows.
Memorizza un intero come 8 bit nel file. Questo fa avanzare il cursore del file di 1 byte. Restituisce true se l'operazione ha successo.
Nota: value dovrebbe essere compreso nell'intervallo [0, 255]. Qualsiasi altro valore andrà in overflow e verrà avvolto.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
Per memorizzare un intero con segno, usa store_64() o convertirlo manualmente (vedi store_16() per un esempio).
Memorizza un intero come 16 bit nel file. Questo fa avanzare il cursore del file di 2 byte. Restituisce true se l'operazione ha successo.
Nota: value dovrebbe essere compreso nell'intervallo [0, 2^16 - 1]. Qualsiasi altro valore andrà in overflow e si avvolgerà.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
Per memorizzare un intero con segno, usa store_64() o memorizza un intero con segno nell'intervallo [-2^15, 2^15 - 1] (ovvero mantenendo un bit per il segno) e calcolarne manualmente il segno durante la lettura. Ad esempio:
const MAX_15B = 1 << 15
const MAX_16B = 1 << 16
func unsigned16_to_signed(unsigned):
return (unsigned + MAX_15B) % MAX_16B - MAX_15B
func _ready():
var f = FileAccess.open("user://file.dat", FileAccess.WRITE_READ)
f.store_16(-42) # Questo si avvolge e memorizza 65494 (2^16 - 42).
f.store_16(121) # Nei limiti, memorizzerà 121.
f.seek(0) # Torna indietro per iniziare a leggere il valore memorizzato.
var read1 = f.get_16() # 65494
var read2 = f.get_16() # 121
var converted1 = unsigned16_to_signed(read1) # -42
var converted2 = unsigned16_to_signed(read2) # 121
public override void _Ready()
{
using var f = FileAccess.Open("user://file.dat", FileAccess.ModeFlags.WriteRead);
f.Store16(unchecked((ushort)-42)); // Questo si avvolge e memorizza 65494 (2^16 - 42).
f.Store16(121); // Nei limiti, memorizzerà 121.
f.Seek(0); // Torna indietro per iniziare a leggere il valore memorizzato.
ushort read1 = f.Get16(); // 65494
ushort read2 = f.Get16(); // 121
short converted1 = (short)read1; // -42
short converted2 = (short)read2; // 121
}
Memorizza un intero come 32 bit nel file. Questo fa avanzare il cursore del file di 4 byte. Restituisce true se l'operazione ha successo.
Nota: value dovrebbe essere compreso nell'intervallo [0, 2^32 - 1]. Qualsiasi altro valore andrà in overflow e si avvolgerà.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
Per memorizzare un intero con segno, usa store_64() o convertirlo manualmente (vedi store_16() per un esempio).
Memorizza un intero come 64 bit nel file. Questo fa avanzare il cursore del file di 8 byte. Restituisce true se l'operazione ha successo.
Nota: value deve essere compreso nell'intervallo [-2^63, 2^63 - 1] (ovvero deve essere un valore int valido).
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_buffer(buffer: PackedByteArray) 🔗
Memorizza l'array di byte fornito nel file. Questo fa avanzare il cursore del file del numero di byte memorizzati. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_csv_line(values: PackedStringArray, delim: String = ",") 🔗
Memorizza il PackedStringArray fornito nel file come singola riga nel formato CSV (Comma-Separated Values). È possibile passare un delimitatore (delim) da usare diverso da quello predefinito "," (la virgola). Questo delimitatore deve essere un solo carattere.
Il testo sarà codificato come UTF-8. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_double(value: float) 🔗
Memorizza un numero in virgola mobile a 64 bit nel file. Questo fa avanzare il cursore del file di 8 byte. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_float(value: float) 🔗
Memorizza un numero in virgola mobile a 32 bit nel file. Questo fa avanzare il cursore del file di 4 byte. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_half(value: float) 🔗
Memorizza un numero in virgola mobile a 16 bit nel file. Questo fa avanzare il cursore del file di 2 byte. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_line(line: String) 🔗
Memorizza la riga line nel file, seguita da un carattere di nuova riga (\n), codificando il testo come UTF-8. Questo fa avanzare il cursore del file della lunghezza della riga, dopo il carattere di nuova riga. La quantità di byte scritti dipende dai byte codificati in UTF-8, che può essere diversa da String.length() il quale conta il numero di codici UTF-32. Restituisce true se l'operazione ha successo.
Nota: se si verifica un errore, il valore risultante dell'indicatore di posizione del file è indeterminato.
bool store_pascal_string(string: String) 🔗
Memorizza la String specificata come una riga nel file in formato Pascal (ovvero memorizza anche la lunghezza della stringa). Il testo sarà codificato come UTF-8. Questo fa avanzare il cursore del file del numero di byte scritti a seconda dei byte codificati in UTF-8, che può essere diverso da String.length() il quale conta il numero di codici UTF-32. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_real(value: float) 🔗
Memorizza un numero in virgola mobile. Questo fa avanzare il cursore del file di 4 o 8 byte, a seconda della precisione utilizzata dalla build attuale di Godot.
Se si utilizza una build di Godot compilata con l'opzione precision=single (predefinito), questo metodo salverà un float a 32 bit. Altrimenti, se compilata con l'opzione precision=double, salverà un float a 64 bit. Restituisce true se l'operazione ha successo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_string(string: String) 🔗
Memorizza la stringa string nel file senza un carattere di ritorno a capo (\n), codificando il testo come UTF-8. Questo fa avanzare il cursore del file della lunghezza della stringa in byte codificati in UTF-8, che può essere diversa da String.length() il quale conta il numero di codici UTF-32. Restituisce true se l'operazione ha successo.
Nota: Questo metodo è progettato per scrivere file di testo. La stringa è memorizzata come buffer codificato in UTF-8, senza la lunghezza della stringa o lo zero di terminazione. Ciò significa che non può essere recuperata facilmente. Se si desidera memorizzare una stringa recuperabile in un file binario, considera di usare store_pascal_string(). Per recuperare stringhe da un file di testo, è possibile usare get_buffer(length).get_string_from_utf8() (se si conosce la lunghezza) o get_as_text().
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.
bool store_var(value: Variant, full_objects: bool = false) 🔗
Inserisce un qualunque Variant nel file. Se full_objects è true, è consentito codificare le istanze di oggetti (e può potenzialmente includere codice). Questo fa avanzare il cursore del file del numero di byte memorizzati. Restituisce true se l'operazione ha successo.
Internamente, questo metodo utilizza lo stesso meccanismo di codifica del metodo @GlobalScope.var_to_bytes(), come descritto nella documentazione dell'API di serializzazione binaria.
Nota: Non tutte le proprietà sono incluse. Saranno serializzate solo le proprietà configurate con il flag @GlobalScope.PROPERTY_USAGE_STORAGE. È possibile aggiungere un nuovo flag di utilizzo a una proprietà sovrascrivendo il metodo Object._get_property_list() nella tua classe. Puoi anche controllare come è configurato l'utilizzo della proprietà chiamando Object._get_property_list(). Consulta PropertyUsageFlags per i possibili flag di utilizzo.
Nota: Se si verifica un errore, il valore risultante dell'indicatore di posizione nel file non può essere determinato.