La classe File comprend deux méthodes permettant de copier des fichiers ou des répertoires :
copyTo()
et
copyToAsync()
. Elle propose également deux méthodes permettant de déplacer des fichiers ou des répertoires :
moveTo()
et
moveToAsync()
. Les méthodes
copyTo()
et
moveTo()
s’exécutent en mode synchrone, les méthodes
copyToAsync()
et
moveToAsync()
en mode asynchrone (voir la section
Principes de base des classes File d’AIR
).
Pour copier ou déplacer un fichier, vous définissez deux objets File. L’un pointe vers le fichier à copier ou déplacer et appelle la méthode copy ou move. L’autre pointe vers le chemin de destination (résultant).
Le code suivant copie le fichier test.txt qui réside dans le sous-répertoire AIR Test du répertoire de documents de l’utilisateur vers le fichier copy.txt dans le même répertoire :
var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var newFile:File = File.resolvePath("AIR Test/copy.txt");
original.copyTo(newFile, true);
Dans cet exemple, la valeur du deuxième paramètre,
overwrite
, de la méthode
copyTo()
est définie sur
true
. Si vous définissez le paramètre
overwrite
sur
true
, tout fichier cible existant est remplacé. Ce paramètre est facultatif. Si vous le définissez sur
false
(valeur par défaut), un événement IOErrorEvent est distribué si le fichier cible existe (et le fichier n’est pas copié).
La version « Async » des méthodes copy et move s’exécute en mode asynchrone. La méthode
addEventListener()
permet de surveiller la fin de la tâche ou les erreurs, comme l’illustre le code suivant :
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 comprend également les méthodes
File.moveToTrash()
et
File.moveToTrashAsync()
, qui déplacent un fichier ou un répertoire vers la corbeille système.