Utilisation des fichiers

Adobe AIR 1.0 et les versions ultérieures

L’API de fichiers d’AIR vous permet d’ajouter des fonctionnalités de manipulation des fichiers de base à vos applications. Vous pouvez ainsi accéder à des fichiers en lecture ou en écriture, copier et supprimer des fichiers, etc. Comme vos applications ont accès au système de fichiers local, voir le chapitre Sécurité AIR , si ce n’est déjà fait.

Remarque : vous pouvez associer un type de fichier à une application AIR (afin qu’un double-clic sur le fichier entraîne l’ouverture de l’application). Pour plus d’informations, voir la section Gestion des associations de fichiers .

Obtention d’informations sur les fichiers

La classe File comprend les propriétés suivantes qui fournissent des informations sur un fichier ou un répertoire vers lequel pointe un objet File :

Propriété File

Description

creationDate

Date de création du fichier sur le disque local.

creator

Obsolète. Utilisez la propriété extension . (Cette propriété renvoie le type de créateur Macintosh du fichier, qui est uniquement utilisé dans les versions de Mac OS antérieures à Mac OS X.)

downloaded

(AIR 2 et les versions ultérieures) Indique si le fichier ou le répertoire référencé a été téléchargé (depuis Internet) ou non. Cette propriété est utile uniquement sur les systèmes d’exploitation dans lesquels les fichiers peuvent être marqués comme téléchargés :

  • Windows XP Service Pack 2 et versions ultérieures, et Windows Vista

  • Mac OS 10.5 et versions ultérieures

exists

Indique si le fichier ou répertoire référencé existe.

extension

Extension de fichier, partie du nom qui suit (sans l’inclure) le point (« . »). Si le nom de fichier ne comprend pas de point, l’extension est null .

icon

Objet Icon contenant les icônes définies pour le fichier.

isDirectory

Indique si l’objet File référence un répertoire.

modificationDate

Date de la dernière modification du fichier ou du répertoire sur le disque local.

name

Nom du fichier ou répertoire (y compris l’éventuelle extension de fichier) sur le disque local.

nativePath

Chemin complet dans la représentation du système d’exploitation hôte (voir la section Chemin des objets File ).

parent

Dossier qui contient le dossier ou fichier représenté par l’objet File. Cette propriété est null si l’objet File référence un fichier ou un répertoire dans la racine du système de fichiers.

size

Taille du fichier sur le disque local, en octets.

type

Obsolète. Utilisez la propriété extension . (Sur le Macintosh, cette propriété correspond au type de fichier de quatre caractères qui est uniquement utilisé dans les versions de Mac OS antérieures à Mac OS X).

url

URL du fichier ou du répertoire (voir la section Chemin des objets File ).

Pour plus d’informations sur ces propriétés, voir l’entrée consacrée à la classe File dans le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash .

Copie et déplacement de fichiers

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.

Suppression d’un fichier

La classe File comprend les méthodes deleteFile() et deleteFileAsync() . Ces méthodes suppriment des fichiers. La première s’exécute en mode synchrone et la seconde en mode asynchrone (voir la section Principes de base des classes File d’AIR ).

Par exemple, le code suivant supprime, en mode synchrone, le fichier test.txt du répertoire de documents de l’utilisateur :

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.deleteFile(); 

Le code suivant supprime, en mode asynchrone, le fichier test.txt du répertoire de documents de l’utilisateur :

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.addEventListener(Event.COMPLETE, completeHandler) 
file.deleteFileAsync(); 
 
function completeHandler(event:Event):void { 
    trace("Deleted.") 
} 

Vous disposez également des méthodes moveToTrash() et moveToTrashAsync() , qui permettent de déplacer un fichier ou un répertoire vers la corbeille système. Pour plus d’informations, voir la section Déplacement d’un fichier vers la corbeille .

Déplacement d’un fichier vers la corbeille

La classe File comprend les méthodes moveToTrash() et moveToTrashAsync() . Ces méthodes envoient un fichier ou un répertoire dans la corbeille système. La première s’exécute en mode synchrone et la seconde en mode asynchrone (voir la section Principes de base des classes File d’AIR ).

Par exemple, le code suivant déplace, en mode synchrone, le fichier test.txt du répertoire de documents de l’utilisateur vers la corbeille système :

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
Remarque : sur les systèmes d’exploitation qui ne prennent pas en charge le concept de dossier de corbeille récupérable, ces fichiers sont immédiatement supprimés.

Création d’un fichier temporaire

La classe File comprend la méthode createTempFile() , qui crée un fichier dans le répertoire temporaire système, comme l’illustre l’exemple suivant :

var temp:File = File.createTempFile(); 

La méthode createTempFile() crée automatiquement un fichier temporaire unique (ce qui vous évite d’avoir à déterminer un nouvel emplacement unique).

Vous pouvez utiliser un fichier temporaire pour stocker provisoirement des informations utilisées au cours d’une session de l’application. Vous remarquerez que vous disposez également de la méthode createTempDirectory() , qui permet de créer un répertoire temporaire unique dans le répertoire temporaire système.

Vous pouvez éventuellement supprimer le fichier temporaire avant de fermer l’application, car cette opération n’est pas automatiquement effectuée sur tous les périphériques.