Il runtime fornisce le funzionalità per operare con le directory del file system locale.
Per informazioni dettagliate sulla creazione di oggetti File che puntano a directory, consultate
Puntamento di un oggetto File a una directory
.
Creazione di directory
Il metodo
File.createDirectory()
consente di creare una directory. Ad esempio, il codice seguente crea una directory denominata AIR Test quale sottodirectory della home directory dell'utente:
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Se la directory è presente, il metodo
createDirectory()
non esegue alcuna operazione.
Inoltre, in alcune modalità, un oggetto FileStream crea directory quando si aprono i file. Le directory mancanti vengono create quando si crea un'istanza FileStream con il parametro
fileMode
delle funzioni di costruzione
FileStream()
impostata su
FileMode.APPEND
oppure
FileMode.WRITE
. Per ulteriori informazioni, consultate
Flusso di lavoro per lettura e scrittura di file
.
Creazione di una directory temporanea
La classe File comprende un metodo
createTempDirectory()
, che crea una directory nella cartella della directory temporanea del sistema, come nell'esempio seguente:
var temp:File = File.createTempDirectory();
Il metodo
createTempDirectory()
crea automaticamente una directory temporanea univoca (evitando l'operazione di individuare un nuovo percorso univoco).
Potete utilizzare una directory temporanea per memorizzare momentaneamente i file temporanei utilizzati per una sessione dell'applicazione. Notate che è disponibile il metodo
createTempFile()
per la creazione di nuovi file temporanei univoci nella directory temporanea di sistema.
Potrebbe essere opportuno eliminare la directory temporanea prima della chiusura dell'applicazione, poiché
non
viene eliminata automaticamente su tutti i dispositivi.
Enumerazione delle directory
Potete utilizzare il metodo
getDirectoryListing()
oppure il metodo
getDirectoryListingAsync()
di un oggetto File per recuperare un array di oggetti File che puntano a file e sottocartelle di una directory.
Ad esempio, il codice seguente elenca il contenuto della directory documents dell'utente (senza esaminare le sottodirectory):
var directory:File = File.documentsDirectory;
var contents:Array = directory.getDirectoryListing();
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
Quando si utilizza la versione asincrona del metodo, l'oggetto evento
directoryListing
presenta una proprietà
files
che è l'array di oggetti File relativi alle directory:
var directory:File = File.documentsDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListHandler);
function dirListHandler(event:FileListEvent):void
{
var contents:Array = event.files;
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
}
Copiatura e spostamento di directory
Potete copiare o spostare una directory con gli stessi metodi utilizzati per copiare o spostare un file. Ad esempio, il codice seguente copia una directory in modo sincrono:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
Quando specificate il valore true per il parametro
overwrite
del metodo
copyTo()
, tutti i file e le cartelle presenti in una directory di destinazione esistente vengono eliminati e sostituiti con i file e le cartelle della cartella originale (anche se il file di destinazione non è presente in tale directory).
La directory specificata come parametro
newLocation
del metodo
copyTo()
indica il percorso della directory risultante;
non
indica la directory
principale
che conterrà la directory risultante.
Per informazioni dettagliate, consultate
Copiatura e spostamento di file
.
Eliminazione del contenuto di una directory
La classe File contiene il metodo
deleteDirectory()
e il metodo
deleteDirectoryAsync()
. Questi metodi consentono di eliminare le directory; il primo funziona in modo sincrono, il secondo in modo asincrono (consultate
Elementi di base dei file AIR
). Entrambi i metodi comprendono un parametro
deleteDirectoryContents
(che accetta un valore booleano); quando è impostato su
true
(il valore predefinito è
false
), la chiamata al metodo elimina le directory non vuote, in caso contrario vengono eliminate solo quelle vuote.
Ad esempio, il codice seguente elimina in modo sincrono la sottodirectory AIR Test della directory documents dell'utente:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
Il codice seguente elimina in modo asincrono la sottodirectory AIR Test della directory documents dell'utente:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Sono disponibili inoltre i metodi
moveToTrash()
e
moveToTrashAsync()
, che consentono di spostare una directory nel cestino del sistema. Per informazioni dettagliate, consultate
Spostamento di un file nel cestino
.
|
|
|