Operazioni con i file

Adobe AIR 1.0 e versioni successive

Grazie all'API file di AIR potete aggiungere alle vostre applicazioni funzionalità di base per l'interazione con i file. Ad esempio, potete leggere, scrivere, copiare ed eliminare file, e altro ancora. Poiché le applicazioni sono in grado di accedere al file system locale, consultate il capitolo Sicurezza in AIR, se non lo avete ancora letto.

Nota: potete associare un tipo di file a un'applicazione AIR (in modo da poterla aprire facendo doppio clic su un file di quel tipo). Per informazioni dettagliate, consultate Gestione delle associazioni di file.

Recupero di informazioni sui file

La classe File comprende le seguenti proprietà che forniscono informazioni su un file o una directory a cui punta un oggetto File:

Proprietà File

Descrizione

creationDate

La data di creazione del file sul disco locale.

creator

Obsoleto: utilizzate la proprietà extension. (Questa proprietà riporta il tipo di autore Macintosh del file, utilizzato solo nelle versioni Mac OS precedenti a Mac OS X.)

downloaded

(AIR 2 e versioni successive) Indica se il file o la directory di riferimento è stata scaricata o meno (da Internet). Questa proprietà è significativa solo nei sistemi operativi in cui i file possono essere contrassegnati come scaricati:

  • Windows XP Service Pack 2 e versioni successive e Windows Vista

  • Mac OS 10.5 e versioni successive

exists

Qualora sia disponibile il file o la directory di riferimento.

extension

L'estensione del file che fa parte del nome e segue (e non comprende) il punto finale ("."). Se non vi è alcun punto nel nome file, l'estensione è null.

icon

Un oggetto Icon contenente le icone definite per il file.

isDirectory

Qualora l'oggetto File faccia riferimento a una directory.

modificationDate

La data dell'ultima modifica apportata al file o alla directory sul disco locale.

name

Il nome del file o della directory (compresa l'eventuale estensione del file) sul disco locale.

nativePath

Il percorso completo nella rappresentazione del sistema operativo host. Consultate Percorsi degli oggetti File.

parent

La cartella che contiene la cartella o il file rappresentato dall'oggetto File. Questa proprietà è null se l'oggetto File fa riferimento a un file o alla directory principale del file system.

size

Le dimensioni del file sul disco locale, espresse in byte.

type

Obsoleto: utilizzate la proprietà extension. (In Macintosh, questa proprietà è di tipo file di quattro caratteri, utilizzato solo nelle versioni Mac OS precedenti a Mac OS X.)

url

L'URL del file o della directory. Consultate Percorsi degli oggetti File.

Per informazioni dettagliate su queste proprietà, vedete la voce classe File nella Guida di riferimento di Adobe ActionScript 3.0 per la piattaforma Adobe Flash.

Copiatura e spostamento di file

La classe File comprende due metodi per la copia di file o directory: copyTo() e copyToAsync(). La classe File comprende due metodi per lo spostamento di file o directory: moveTo() e moveToAsync(). I metodi copyTo() e moveTo() operano in modo sincrono, mentre i metodi copyToAsync() e moveToAsync() in modo asincrono (consultate Elementi di base dei file AIR).

Per copiare o spostare un file, configurate due oggetti File. Uno punta al file da copiare o spostare e corrisponde all'oggetto che chiama il metodo di copia o spostamento; l'altro punta al percorso di destinazione (risultato).

Il caso seguente copia un file test.txt dalla sottodirectory AIR Test della directory documents dell'utente in un file denominato copy.txt presente nella stessa directory:

var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); 
var newFile:File = File.resolvePath("AIR Test/copy.txt"); 
original.copyTo(newFile, true); 

In questo esempio, il valore del parametro overwrite del metodo copyTo() (il secondo parametro) è impostato su true. Impostandolo su true, si sovrascrive un file target esistente. Questo parametro è opzionale. Se si imposta su false (il valore predefinito), l'operazione invia un evento IOErrorEvent, nel caso esista un file target (e il file non viene copiato).

Le versioni "Async" dei metodi di copia e spostamento operano in modo asincrono. Utilizzate il metodo addEventListener() per monitorare il completamento dell'attività o delle condizioni di errore, come nel codice seguente:

var original = File.documentsDirectory; 
original = original.resolvePath("AIR Test/test.txt"); 
 
var destination:File = File.documentsDirectory; 
destination =  destination.resolvePath("AIR Test 2/copy.txt"); 
 
original.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); 
original.addEventListener(IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler); 
original.moveToAsync(destination); 
 
function fileMoveCompleteHandler(event:Event):void { 
    trace(event.target); // [object File] 
} 
function fileMoveIOErrorEventHandler(event:IOErrorEvent):void { 
    trace("I/O Error.");  
} 

La classe File include anche i metodi File.moveToTrash() e File.moveToTrashAsync() che spostano un file o una directory nel cestino del sistema.

Eliminazione di un file

La classe File comprende un metodo deleteFile() e un metodo deleteFileAsync(). Questi metodi eliminano file: il primo lavora in modo sincrono, il secondo in modo asincrono (consultate Elementi di base dei file AIR).

Ad esempio, il codice seguente elimina in modo sincrono il file test.txt nella directory documents dell'utente:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.deleteFile(); 

Il codice seguente elimina in modo asincrono il file test.txt della directory documents dell'utente:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.addEventListener(Event.COMPLETE, completeHandler) 
file.deleteFileAsync(); 
 
function completeHandler(event:Event):void { 
    trace("Deleted.") 
} 

Sono inclusi inoltre i metodi moveToTrash() e moveToTrashAsync() utilizzabili per spostare un file o una directory nel cestino del sistema. Per informazioni dettagliate, consultate Spostamento di un file nel cestino.

Spostamento di un file nel cestino

La classe File comprende un metodo moveToTrash() e un metodo moveToTrashAsync(). Questi metodi inviano un file o una directory nel cestino del sistema, il primo lavora in modo sincrono, il secondo in modo asincrono (consultate Elementi di base dei file AIR).

Ad esempio, il codice seguente sposta in modo sincrono il file test.txt nella directory documents dell'utente nel cestino del sistema:

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Nota: nei sistemi operativi che non prevedono la possibilità di ripristinare i file dalla cartella del cestino, i file vengono rimossi immediatamente.

Creazione di un file temporaneo

La classe File comprende un metodo createTempDirectory(), che crea un file nella cartella della directory temporanea del sistema come nell'esempio seguente:

var temp:File = File.createTempFile(); 

Il metodo createTempFile() crea automaticamente un file temporaneo unico (evitando l'operazione di individuare un nuovo percorso unico).

Potete utilizzare un file temporaneo per memorizzare temporaneamente le informazioni utilizzate in una sessione dell'applicazione. Notate che è disponibile anche un metodo createTempDirectory() per la creazione di una directory temporanea unica nella directory temporanea di sistema.

È possibile eliminare il file temporaneo prima della chiusura dell'applicazione, poiché non viene eliminato automaticamente su tutti i dispositivi.