La 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.