Creación de directorios
El método
File.createDirectory()
sirve para crear un directorio. En el ejemplo siguiente, el código crea un directorio llamado "AIR Test" como subdirectorio del directorio de inicio del usuario:
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Si el directorio ya existe, el método
createDirectory()
no hace nada.
Además, en algunos modos un objeto FileStream crea un directorio cuando se abre un archivo. Se crean directorios inexistentes cuando se concreta una instancia de FileStream con el parámetro
fileMode
del constructor
FileStream()
definido en
FileMode.APPEND
o
FileMode.WRITE
. Para ver más información, consulte
Flujo de trabajo de lectura y escritura de archivos
.
Creación de directorios temporales
La clase File incluye un método
createTempDirectory()
que crea un directorio en la carpeta de directorios temporales para el sistema, como en el ejemplo siguiente:
var temp:File = File.createTempDirectory();
El método
createTempDirectory()
crea automáticamente un directorio temporal exclusivo (ahorrándole el trabajo de determinar un nuevo lugar exclusivo).
Se puede utilizar un directorio temporal para guardar de forma provisional los archivos temporales que se utilizan para una sesión de la aplicación. Cabe observar que existe un método
createTempFile()
para crear nuevos archivos temporales exclusivos en el directorio temporal del sistema.
Puede que desee eliminar el directorio temporal antes de cerrar la aplicación, dado que
no
se elimina de forma automática en todos los dispositivos.
Enumeración de directorios
El método
getDirectoryListing()
o el método
getDirectoryListingAsync()
de un objeto File sirve para obtener un conjunto de objetos File que apuntan a archivos y subdirectorios de un directorio.
Por ejemplo, el siguiente código enumera el contenido del directorio de documentos del usuario (sin examinar los subdirectorios):
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);
}
Al utilizar la versión asíncrona del método, el objeto de evento
directoryListing
tiene una propiedad
files
que es el conjunto de objetos File que corresponden a los directorios:
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);
}
}
Copia y movimiento de directorios
Los directorios se copian o mueven de la misma forma que los archivos. Por ejemplo, el siguiente código copia un directorio de modo sincrónico:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
Si se especifica "true" para el parámetro
overwrite
del método
copyTo()
, se eliminan todos los archivos y las carpetas de un directorio de destino existente, sustituyéndose por los archivos y carpetas del directorio de origen (aunque el archivo de destino no exista en el directorio de origen).
El directorio que se especifique como parámetro
newLocation
del método
copyTo()
especifica la ruta al directorio resultante;
no
especifica el directorio
superior
que contendrá el directorio resultante.
Para obtener más información, consulte
Copia y movimiento de directorios
.
Eliminación del contenido de los directorios
La clase File incluye un método
deleteDirectory()
y un método
deleteDirectoryAsync()
. Estos métodos eliminan directorios, el primero de forma sincrónica y el segundo de forma asíncrona (consulte
Aspectos básicos de los archivos de AIR
). Ambos métodos incluyen un parámetro
deleteDirectoryContents
(que tiene un valor booleano); cuando dicho parámetro se define en
true
(el valor predeterminado es
false
), al llamar al método se eliminan los directorios que no estén vacíos; de lo contrario, solo se eliminan los directorios vacíos.
En el ejemplo siguiente, el código elimina de modo sincrónico el subdirectorio AIR Test del directorio de documentos del usuario:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
El código siguiente elimina de modo asíncrono el subdirectorio AIR Test del directorio de documentos del usuario:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
También se incluyen los métodos
moveToTrash()
y
moveToTrashAsync()
, que sirven para trasladar un directorio a la papelera del sistema. Para obtener más información, consulte
Traslado de archivos a la papelera
.
|
|
|