Trabajo con archivosAdobe AIR 1.0 y posterior La API de archivos de AIR permite añadir capacidades básicas de interacción de archivos a las aplicaciones. Por ejemplo, se pueden leer y escribir archivos, copiar y eliminar archivos, etc. Dado que las aplicaciones tienen acceso al sistema de archivos local, consulte Seguridad en AIR si aún no lo ha hecho. Nota: se puede asociar un tipo de archivo con una aplicación de AIR (de modo que, al hacerle doble clic, se abra la aplicación). Para obtener más información, consulte Gestión de asociaciones con archivos.
Obtención de información sobre los archivosLa clase File incluye las siguientes propiedades que brindan información sobre un archivo o directorio al que apunta un objeto File:
Para obtener más información sobre estas propiedades, consulte la entrada de la clase File en ActionScript 3.0 Reference for the Adobe Flash Platform. Copia y movimiento de directoriosLa clase File incluye dos métodos de copiar archivos o directorios: copyTo() y copyToAsync(). La clase File incluye dos métodos de mover archivos o directorios: moveTo() y moveToAsync(). Los métodos copyTo() y moveTo() funcionan de modo sincrónico y los métodos copyToAsync() y moveToAsync() son asíncronos (consulte Aspectos básicos de los archivos de AIR). Para copiar o mover un archivo se configuran dos objetos File. Uno de ellos apunta al archivo a copiar o mover y es el objeto que llama al método de copiar o mover, mientras que el otro apunta a la ruta de destino (el resultado). Lo que sigue copia un archivo test.txt desde el subdirectorio AIR Test del directorio de documentos del usuario en un archivo llamado copy.txt en el mismo directorio: var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var newFile:File = File.resolvePath("AIR Test/copy.txt");
original.copyTo(newFile, true);
En este ejemplo el valor del parámetro overwrite del método copyTo() (el segundo parámetro) está definido en true. Al definir overwrite como true, si el archivo de destino ya existe se sobrescribe. Este parámetro es opcional. Si está definido en false (el valor predeterminado), la operación distribuye un evento IOErrorEvent en el caso de que el archivo de destino ya exista (el archivo no se copia). Las versiones “Async” de los métodos de copiar y mover funcionan de modo asíncrono. Utilice el método addEventListener() para controlar si se concluye la tarea o se produce un estado de error, como en el código siguiente: 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 clase File también incluye los métodos File.moveToTrash() y File.moveToTrashAsync(), que sirven para trasladar un archivo o directorio a la papelera del sistema. Eliminación de archivosLa clase File incluye un método deleteFile() y un método deleteFileAsync(). Estos métodos eliminan archivos, el primero de forma sincrónica y el segundo de forma asíncrona (consulte Aspectos básicos de los archivos de AIR). En el ejemplo siguiente, el código elimina de modo sincrónico el archivo test.txt del directorio de documentos del usuario: var file:File = File.documentsDirectory.resolvePath("test.txt");
file.deleteFile();
El código siguiente elimina de modo asíncrono el archivo test.txt del directorio de documentos del usuario: var file:File = File.documentsDirectory.resolvePath("test.txt");
file.addEventListener(Event.COMPLETE, completeHandler)
file.deleteFileAsync();
function completeHandler(event:Event):void {
trace("Deleted.")
}
También se incluyen los métodos moveToTrash() y moveToTrashAsync(), que sirven para trasladar un archivo o directorio a la papelera del sistema. Para obtener más información, consulte Traslado de archivos a la papelera. Traslado de archivos a la papeleraLa clase File incluye un método moveToTrash() y un método moveToTrashAsync(). Estos métodos envían un archivo o directorio a la papelera del sistema, el primero de forma sincrónica y el segundo de forma asíncrona (consulte Aspectos básicos de los archivos de AIR). En el ejemplo siguiente, el código traslada de modo sincrónico el archivo test.txt del directorio de documentos del usuario a la papelera del sistema: var file:File = File.documentsDirectory.resolvePath("test.txt");
file.moveToTrash();
Nota: en sistemas operativos que no admiten el concepto de carpeta de papelera recuperable, los archivos se eliminan inmediatamente.
Creación de archivos temporalesLa clase File incluye un método createTempFile() que crea un archivo en la carpeta de directorios temporales para el sistema, como en el ejemplo siguiente: var temp:File = File.createTempFile(); El método createTempFile() crea automáticamente un archivo temporal exclusivo (ahorrándole el trabajo de determinar un nuevo lugar exclusivo). Se puede utilizar un archivo temporal para guardar de forma provisional la información que se utiliza en una sesión de la aplicación. Obsérvese que existe además un método createTempDirectory() para crear nuevos directorios temporales exclusivos en el directorio temporal System. Puede que desee eliminar el archivo temporal antes de cerrar la aplicación, dado que no se elimina de forma automática en todos los dispositivos. |
|