flash.filesystemFileStream Un objet FileStream est utilisé pour lire et écrire des fichiers.flash.utils:IDataInputflash.utils:IDataOutputflash.events:EventDispatcher Un objet FileStream est utilisé pour lire et écrire des fichiers. Les fichiers peuvent être ouverts de façon synchrone en appelant la méthode open() ou de façon asynchrone en appelant la méthode openAsync().

L’avantage de l’ouverture asynchrone des fichiers est qu’un autre code peut s’exécuter pendant que Adobe AIR exécute des processus de lecture et d’écriture en arrière-plan. Dans le cas d’une ouverture asynchrone, des événements progress sont distribués au fur et à mesure des opérations.

Un objet File ouvert de façon synchrone se comporte un peu comme un objet ByteArray ; un fichier ouvert de façon asynchrone se comporte un peu comme un objet Socket ou URLStream Lorsqu’un objet File est ouvert de façon synchrone, l’appelant fait une pause pendant la lecture ou l’écriture des données demandées dans le fichier sous-jacent. Lorsqu’un fichier est ouvert de façon asynchrone, les données écrites dans le flux sont immédiatement mises en mémoire tampon et écrites ultérieurement dans le fichier.

Que la lecture d’un fichier soit synchrone ou asynchrone, les méthodes de lecture réelles sont synchrones. Dans les deux cas, elles lisent les données actuellement « disponibles ». Lorsque les données sont lues de façon synchrone, elles sont toutes disponibles à tout moment. Alors que lors d’une lecture asynchrone, les données deviennent disponibles au fur et à mesure de leur arrivée dans le tampon de lecture. Dans les deux cas, les données pouvant être lues de façon synchrone à un moment donné sont représentées par la propriété bytesAvailable.

Une application qui traite une entrée de façon asynchrone s’enregistre généralement pour les événements progress et consomme les données au fur et à mesure qu’elles deviennent disponibles en appelant des méthodes de lecture. L’application peut également se contenter d’attendre que toutes les données soient disponibles en s’enregistrant pour l’événement complete et en traitant l’ensemble des données lorsque cet événement complete est distribué.

complete Indique que la fin du flux a été atteint.flash.events.Event.COMPLETEflash.events.Event Indique que la fin du flux a été atteint. positionoutputProgress Indique que les données placées en mémoire tampon ont été écrites dans le fichier.flash.events.OutputProgressEvent.OUTPUT_PROGRESSflash.events.OutputProgressEvent Indique que les données placées en mémoire tampon ont été écrites dans le fichier. progress Signale la disponibilité de nouvelles données dans le flux.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Signale la disponibilité de nouvelles données dans le flux. ioError Indique qu’une erreur s’est produite lors d’une opération d’E/S de fichier asynchrone.flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent Indique qu’une erreur s’est produite lors d’une opération d’E/S de fichier asynchrone. close Indique que le flux a été fermé par un appel explicite à la méthode close().flash.events.Event.CLOSEflash.events.Event Indique que le flux a été fermé par un appel explicite à la méthode close(). close()FileStream Crée un objet FileStream. Crée un objet FileStream. Utilise la méthode open() ou openAsync() pour ouvrir un fichier. open()openAsync()close Ferme l’objet FileStream. Ferme l’objet FileStream.

Vous ne pouvez plus lire ni écrire des données après avoir appelé la méthode close(). Si le fichier a été ouvert de façon asynchrone (l’objet FileStream a utilisé la méthode openAsync() pour ouvrir le fichier), un appel à la méthode close() entraîne la distribution de l’événement close par l’objet.

La fermeture de l’application entraîne la fermeture automatique de tous les fichiers associés aux objets FileStream de l’application. Toutefois, il est préférable d’enregistrer un événement closed pour tous les objets FileStream ouverts de façon asynchrone et qui ont des données en attente d’écriture avant de fermer l’application (afin de s’assurer que ces données soient écrites).

Vous pouvez réutiliser l’objet FileStream en appelant la méthode open() ou la méthode openAsync(). Tous les fichiers associés à l’objet FileStream sont ainsi fermés, mais l’objet ne déclenche pas l’événement close.

Dans le cas d’un objet FileStream ouvert de façon asynchrone (avec la méthode openAsync()), même si vous appelez l’événement close() pour un objet FileStream et supprimez les propriétés et les variables qui référence l’objet, l’objet FileStream n’est pas nettoyé tant que des opérations sont en cours et que des gestionnaires d’événement sont enregistrés. En particulier, un objet FileStream non référencé autrement persiste tant que l’un des scénarios suivants est encore possible :

  • Pour les opérations de lecture de fichiers, la fin du fichier n’a pas été atteinte (et l’événement complete n’a pas été déclenché).
  • Des données de sortie sont toujours disponibles pour l’écriture et des événements liés à la sortie (par exemple outputProgress ou ioError) ont des écouteurs d’événement enregistrés.
Le code suivant ouvre un objet FileStream de façon asynchrone et écrit un fichier texte nommé test.txt dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur. Un appel à la méthode close() de l’objet FileStream ferme le fichier lorsque les données sont écrites. import flash.filesystem.*; import flash.events.Event; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.openAsync(file, FileMode.WRITE); fileStream.writeUTFBytes("Hello"); fileStream.addEventListener(Event.CLOSE, fileClosed); fileStream.close(); function fileClosed(event:Event):void { trace("closed"); } Le code suivant ouvre un objet FileStream de façon asynchrone et écrit un fichier texte nommé test.txt dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur. Un appel à la méthode close() de l’objet FileStream ferme le fichier lorsque les données sont écrites. import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeUTF("Hello"); fileStream.close();
open()événement closecloseflash.events:EventLe fichier ouvert de façon asynchrone est fermé. Le fichier ouvert de façon asynchrone est fermé.
openAsync Ouvre l’objet FileStream de façon asynchrone, en pointant vers le fichier spécifié par le paramètre file.Le fichier se trouve dans le répertoire de l’application et le paramètre fileMode est défini sur le mode « append », « update » ou « write ». SecurityErrorSecurityErrorfileflash.filesystem:FileObjet File désignant le fichier à ouvrir. fileModeStringChaîne provenant de la classe FileMode qui définit les capacités de l’objet FileStream, par exemple la capacité à lire ou écrire dans le fichier. Ouvre l’objet FileStream de façon asynchrone, en pointant vers le fichier spécifié par le paramètre file.

Si l’objet FileStream est déjà ouvert, un appel à la méthode ferme le fichier avant l’ouverture et aucun autre événement (y compris close) n’est délivré pour le fichier précédemment ouvert.

Si le paramètre fileMode est défini sur FileMode.READ ou sur FileMode.UPDATE, AIR lit les données dans la mémoire tampon d’entrée dès l’ouverture du fichier, et des événements progress et open sont déclenchés au fur et à mesure de la lecture des données dans la mémoire tampon d’entrée.

Dans les systèmes qui prennent en charge le verrouillage de fichiers, un fichier ouvert en mode « écriture » ou en mode « mise à jour » (FileMode.WRITE ou FileMode.UPDATE) n’est plus lisible jusqu’à sa fermeture.

Une fois que vous avez terminé de réaliser des opérations sur le fichier, appelez la méthode close() de l’objet FileStream. Certains systèmes d’exploitation limitent le nombre de fichiers ouverts simultanément.

`
Le code suivant illustre l’ouverture asynchrone du fichier test.txt situé dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur, puis la lecture du fichier dans une chaîne, le jeu de caractères du système étant utilisé comme codage de texte. import flash.filesystem.*; import flash.events.Event; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.addEventListener(Event.COMPLETE, fileCompleteHandler) fileStream.openAsync(file, FileMode.READ); function fileCompleteHandler(event:Event):void { var str:String = fileStream.readMultiByte(fileStream.bytesAvailable, File.systemCharset); trace(str); fileStream.close(); }
close()événement completeévénement ioErrorévénement progressFileModeioErrorflash.events:IOErrorEventLe fichier n’existe pas ; vous ne disposez pas des autorisations appropriées pour l’ouvrir ; vous ouvrez un fichier pour un accès en lecture et vous ne disposez pas d’autorisations de lecture ; ou vous ouvrez un fichier pour un accès en écriture et vous ne disposez pas d’autorisations d’écriture. Le fichier n’existe pas ; vous ne disposez pas des autorisations appropriées pour l’ouvrir ; vous ouvrez un fichier pour un accès en lecture et vous ne disposez pas d’autorisations de lecture ; ou vous ouvrez un fichier pour un accès en écriture et vous ne disposez pas d’autorisations d’écriture.progressflash.events:ProgressEventDistribué lorsque les données sont lues dans la mémoire tampon d’entrée (le fichier doit être ouvert avec le paramètre fileMode défini sur FileMode.READ ou sur FileMode.UPDATE). Distribué lorsque les données sont lues dans la mémoire tampon d’entrée.completeflash.events:EventLes données du fichier ont été lues dans la mémoire tampon d’entrée (le fichier doit être ouvert avec le paramètre fileMode défini sur FileMode.READ ou sur FileMode.UPDATE). Les données du fichier ont été lues dans la mémoire tampon d’entrée.
open Ouvre l’objet FileStream de façon synchrone, en pointant vers le fichier spécifié par le paramètre file.Le fichier n’existe pas ; vous ne disposez pas des autorisations appropriées pour l’ouvrir ; vous ouvrez un fichier pour un accès en lecture et vous ne disposez pas d’autorisations de lecture ; ou vous ouvrez un fichier pour un accès en écriture et vous ne disposez pas d’autorisations d’écriture. IOErrorflash.errors:IOErrorLe fichier se trouve dans le répertoire de l’application et le paramètre fileMode est défini sur le mode « append », « update » ou « write ». SecurityErrorSecurityErrorfileflash.filesystem:FileObjet File désignant le fichier à ouvrir. fileModeStringChaîne provenant de la classe FileMode qui définit les capacités de l’objet FileStream, par exemple la capacité à lire ou écrire dans le fichier. Ouvre l’objet FileStream de façon synchrone, en pointant vers le fichier spécifié par le paramètre file.

Si l’objet FileStream est déjà ouvert, un appel à la méthode ferme le fichier avant l’ouverture et aucun autre événement (y compris close) n’est délivré pour le fichier précédemment ouvert.

Dans les systèmes qui prennent en charge le verrouillage de fichiers, un fichier ouvert en mode « écriture » ou en mode « mise à jour » (FileMode.WRITE ou FileMode.UPDATE) n’est plus lisible jusqu’à sa fermeture.

Une fois que vous avez terminé de réaliser des opérations sur le fichier, appelez la méthode close() de l’objet FileStream. Certains systèmes d’exploitation limitent le nombre de fichiers ouverts simultanément.

Le code suivant illustre l’ouverture synchrone du fichier test.txt situé dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur, puis la lecture du fichier dans une chaîne, le jeu de caractères du système étant utilisé comme codage de texte. import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.READ); var str:String = fileStream.readMultiByte(file.size, File.systemCharset); trace(str); fileStream.close();
close()FichierFileMode
readBoolean Lit une valeur booléenne dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorValeur booléenne, true si l’octet correspond à une valeur non nulle, false dans le cas contraire. Boolean Lit une valeur booléenne dans le flux de fichiers, le flux d’octets ou le tableau d’octets. Un seul octet est lu, et la valeur true est renvoyée s’il n’est pas nul, false dans le cas contraire. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readByte Lit un octet signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -128 et 127. int Lit un octet signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readBytes Lit le nombre d’octets de données spécifié par le paramètre length dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorbytesflash.utils:ByteArrayObjet ByteArray contenant les données à lire. offsetuint0Décalage dans le paramètre bytes où la lecture des données doit commencer. lengthuint0Nombre d’octets à lire. La valeur 0 (par défaut) provoque la lecture de toutes les données disponibles. Lit le nombre d’octets de données spécifié par le paramètre length dans le flux de fichiers, le flux d’octets ou le tableau d’octets. Les octets sont lus dans l’objet ByteArray spécifié par le paramètre bytes, à partir de la position indiquée par offset. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readDouble Lit un nombre à virgule flottante à deux décimales, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorNombre à virgule flottante à deux décimales et conforme au standard IEEE 754. Number Lit un nombre à virgule flottante à deux décimales, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readFloat Lit un nombre à virgule flottante à une décimale, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorNombre à virgule flottante à une décimale et conforme au standard IEEE 754. Number Lit un nombre à virgule flottante à une décimale, conforme à IEEE 754, extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readInt Lit un entier signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -2147483648 et 2147483647. int Lit un entier signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readMultiByte Lit une chaîne multi-octets de longueur spécifiée dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorChaîne au format UTF-8. StringlengthuintNombre d’octets à lire dans le flux d’octets. charSetStringChaîne désignant le le jeu de caractères à utiliser pour interpréter les octets. Parmi les chaînes de jeu de caractères possibles figurent "shift-jis", "cn-gb", "iso-8859-1", etc. Pour obtenir la liste complète, voir la section Jeux de caractères pris en charge.

Remarque : si la valeur du paramètre charSet n’est pas reconnue par le système actuel, Adobe® Flash® Player ou Adobe® AIR® utilise la page de code par défaut du système comme jeu de caractères. Par exemple, une valeur pour le paramètre charSet, comme dans myTest.readMultiByte(22, "iso-8859-01"), qui utilise 01 au lieu de 1 pourra éventuellement fonctionner sur votre système de développement, mais pas sur un autre système. Sur l’autre système, Flash Player ou le moteur d’exécution d’AIR utilise la page de code par défaut du système.

Lit une chaîne multi-octets de longueur spécifiée dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.
File.systemCharsetioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.
readObject Lit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorObjet désérialisé Lit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. flash.net.registerClassAlias()ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readShort Lit un entier signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre -32768 et 32767. int Lit un entier signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readUTFBytes Lit une séquence d’octets UTF-8 dans le flux ou le tableau d’octets et renvoie une chaîne.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorChaîne UTF-8 de longueur spécifiée, générée par la représentation des caractères sous forme d’octets. StringlengthuintNombre d’octets à lire. Lit une séquence d’octets UTF-8 dans le flux ou le tableau d’octets et renvoie une chaîne. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readUTF Lit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorChaîne UTF-8 générée par la représentation des caractères sous forme d’octets. String Lit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets. La chaîne doit être précédée d’un caractère non signé indiquant la longueur en octets.

Cette méthode est similaire à la méthode readUTF() de l’interface IDataInput Java®.

ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.
readUnsignedByte Lit un octet non signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 255. uint Lit un octet non signé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readUnsignedInt Lit un entier non signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 4294967295. uint Lit un entier non signé de 32 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.readUnsignedShort Lit un entier non signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités de lecture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être lu (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorLa position spécifiée pour la lecture des données excède le nombre d’octets disponibles (défini par la propriété bytesAvailable). EOFErrorflash.errors:EOFErrorLa valeur renvoyée est comprise entre 0 et 65535. uint Lit un entier non signé de 16 bits extrait du flux de fichiers, du flux d’octets ou du tableau d’octets. ioErrorflash.events:IOErrorEventLe fichier ne peut pas être lu ou n’est pas ouvert. Cet événement n’est distribué que pour les fichiers ouverts pour des opérations asynchrones (avec la méthode openAsync()). Le fichier ne peut pas être lu ou n’est pas ouvert.truncate Tronque le fichier placé à la position spécifiée par la propriété position de l’objet FileStream.Le fichier n’est pas ouvert pour l’écriture. IllegalOperationErrorflash.errors:IllegalOperationError Tronque le fichier placé à la position spécifiée par la propriété position de l’objet FileStream.

Les octets situés entre la position spécifiée par la propriété position et la fin du fichier sont supprimés. Le fichier doit être ouvert pour l’écriture.

Le code suivant ouvre de façon synchrone le fichier test.txt situé dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur, puis réduit le fichier à une longueur de 100 caractères lorsqu’il est plus long. import flash.filesystem.*; var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.UPDATE); if (file.size > 100) { fileStream.position = 100; fileStream.truncate(); } fileStream.close(); Le code suivant ouvre de façon asynchrone le fichier test.txt situé dans le sous-répertoire Apollo Test du répertoire documents de l’utilisateur, puis réduit le fichier à une longueur de 100 caractères lorsqu’il est plus long. var file:File = File.documentsDirectory; file = file.resolvePath("Apollo Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.openAsync(file, FileMode.UPDATE); trace("start", file.size) if (file.size > 100) { fileStream.position = 100; fileStream.truncate(); } fileStream.addEventListener(Event.CLOSE, fileClosed); fileStream.close(); function fileClosed(event:Event):void { trace("closed", file.size); }
position
writeBoolean Ecrit une valeur booléenne.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueBooleanValeur booléenne qui détermine l’octet écrit. Si le paramètre a pour valeur true, 1 est écrit ; s’il a pour valeur false, 0 est écrit. Ecrit une valeur booléenne. Un seul octet est écrit, conformément au paramètre value, soit 1 si true ou 0 si false. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeByte Ecrit un octet.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueintValeur d’octet exprimée comme un entier. Ecrit un octet. Les 8 bits inférieurs du paramètre sont utilisés. Les 24 bits supérieurs ne sont pas pris en compte. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeBytes Ecrit une séquence d’octets à partir du tableau d’octets ou des octets spécifiés, en partant de l’octet spécifié par l’offset (à l’aide d’un index de base zéro) dont la longueur est indiquée par le paramètre length dans le flux de fichiers ou d’octets, ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorbytesflash.utils:ByteArrayTableau d’octets à écrire. offsetuint0Index de base zéro qui indique où débuter l’écriture dans le tableau. lengthuint0Entier non signé qui indique l’emplacement du début d’écriture dans la mémoire tampon. Ecrit une séquence d’octets à partir du tableau d’octets ou des octets spécifiés, en partant de l’octet spécifié par l’offset (à l’aide d’un index de base zéro) dont la longueur est indiquée par le paramètre length dans le flux de fichiers ou d’octets, ou le tableau d’octets.

Si le paramètre length est omis, la longueur par défaut est utilisée (à savoir 0) et tout le contenu de la mémoire tampon à partir de offset est écrit. Si le paramètre offset est également omis, toute la mémoire tampon est écrite.

Si les paramètres offset ou length ne sont pas compris dans la plage supportée, ils sont réglés sur le début et la fin du tableau d’octets (bytes).

ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).
writeDouble Ecrit un nombre à virgule flottante à deux décimales (64 bits) et conforme à IEEE 754.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueNumberNombre à virgule flottante à deux décimales (64 bits). Ecrit un nombre à virgule flottante à deux décimales (64 bits) et conforme à IEEE 754. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeFloat Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueNumberNombre à virgule flottante à une décimale (32 bits). Ecrit un nombre à virgule flottante à une décimale (32 bits) et conforme à IEEE 754. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeInt Ecrit un entier signé de 32 bits.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueintValeur d’octet exprimée comme un entier signé. Ecrit un entier signé de 32 bits. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeMultiByte Ecrit une chaîne multi-octets dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueStringValeur de la chaîne à écrire. charSetStringChaîne indiquant le jeu de caractères à utiliser. Parmi les chaînes de jeu de caractères possibles figurent "shift-jis", "cn-gb", "iso-8859-1", etc. Pour obtenir la liste complète, voir la section Jeux de caractères pris en charge. Ecrit une chaîne multi-octets dans le flux de fichiers, le flux d’octets ou le tableau d’octets en utilisant le jeu de caractères spécifié. File.systemCharsetioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeObject Ecrit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorobjectObjet à sérialiser. Ecrit un objet codé au format AMF sérialisé dans le flux de fichiers, le flux d’octets ou le tableau d’octets. flash.net.registerClassAlias()ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeShort Ecrit un entier de 16 bits.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueintValeur d’octet exprimée comme un entier. Ecrit un entier de 16 bits. Les 16 bits inférieurs du paramètre sont utilisés. Les 16 bits supérieurs ne sont pas pris en compte. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeUTFBytes Ecrit une chaîne UTF-8.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueStringValeur de la chaîne à écrire. Ecrit une chaîne UTF-8. Comme writeUTF(), mais n’insère pas dans la chaîne un préfixe correspondant à un mot de 16 bits. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeUTF Ecrit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets.Si la longueur de la chaîne est supérieure à 65535. RangeErrorRangeErrorLe fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueStringValeur de la chaîne à écrire. Ecrit une chaîne UTF-8 dans le flux de fichiers, le flux d’octets ou le tableau d’octets. La longueur de la chaîne UTF-8 exprimée en octets est d’abord écrite sous forme d’entier de 16 bits, suivi des octets représentant les caractères de la chaîne. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).writeUnsignedInt Ecrit un entier non signé de 32 bits.Le fichier n’a pas été ouvert ; le fichier a été ouvert mais pas avec des capacités d’écriture ; ou, dans le cas d’un fichier ouvert pour des opérations synchrones (avec la méthode open()), le fichier ne peut pas être écrit (par exemple, parce qu’il est absent). IOErrorflash.errors:IOErrorvalueuintValeur d’octet exprimée comme un entier non signé. Ecrit un entier non signé de 32 bits. ioErrorflash.events:IOErrorEventVous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent). Cet événement n’est distribué que pour les fichiers qui ont été ouverts pour des opérations asynchrones (avec la méthode openAsync()). Vous ne pouvez pas écrire dans le fichier (par exemple parce qu’il est absent).bytesAvailable Renvoie le nombre d’octets de données disponibles pour la lecture dans le tampon de saisie.uint Renvoie le nombre d’octets de données disponibles pour la lecture dans le tampon de saisie. Le code utilisateur doit appeler bytesAvailable pour garantir que les données disponibles sont suffisantes avant leur lecture à l’aide de l’une des méthodes read. endian Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian.String Ordre d’octet des données, à savoir la constante BIG_ENDIAN ou LITTLE_ENDIAN de la classe Endian. objectEncoding Spécifie si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou de la lecture de données binaires avec la méthode readObject() ou writeObject().uint Spécifie si le format AMF3 ou AMF0 est utilisé lors de l’écriture ou de la lecture de données binaires avec la méthode readObject() ou writeObject().

La valeur est une constante extraite de la classe ObjectEncoding. Par défaut, le format AMF3 est utilisé.

ObjectEncodingreadObject()writeObject()
position Position actuelle dans le fichier.Number Position actuelle dans le fichier.

Cette valeur est modifiée dans l’un des cas suivants :

  • Lorsque vous définissez la propriété explicitement
  • Lors d’une lecture de l’objet FileStream (avec l’une les méthodes de lecture)
  • Lors d’une écriture dans l’objet FileStream

La position est définie sous forme numérique (à la place d’uint) pour que les fichiers dont la longueur est supérieure à 232 octets puissent être pris en charge. La valeur de cette propriété est toujours un nombre entier inférieur à 253. Si vous définissez cette valeur sur un nombre décimal, la valeur est arrondie au nombre entier le plus proche.

Lorsqu’un fichier est lu de façon asynchrone, si vous définissez la propriété position, l’application commence à remplir la mémoire tampon de lecture par les données en commençant à la position spécifiée, et la propriété bytesAvailable peut être définie sur 0. Attendez un événement complete avant d’utiliser une méthode de lecture pour lire des données ; ou attendez un événement progress et vérifiez la propriété bytesAvailable avant d’utiliser une méthode de lecture.

Le code suivant illustre la mise à jour de la propriété position de l’objet FileStream lorsque l’application lit des données dans un fichier. import flash.fileSystem.*; import flash.utils.ByteArray; import flash.events.Event; var sourceFile:File = File.documentsDirectory.resolvePath("Apollo Test/test.txt"); var stream:FileStream = new FileStream(); stream.addEventListener(Event.COMPLETE, readBytes); stream.openAsync(sourceFile, FileMode.READ); function readBytes(e:Event):void { var bytes:ByteArray = new ByteArray(); trace("position 0:", stream.position); // 0 bytes[0] = stream.readByte(); trace("position 1:", stream.position); // 1 fileStream.readBytes(bytes, stream.position, 4); trace("position 2:", stream.position); // 5 stream.close(); }
readAhead Quantité minimale de données à lire à partir du disque lors de la lecture asynchrone des fichiers.Number Quantité minimale de données à lire à partir du disque lors de la lecture asynchrone des fichiers.

Cette propriété spécifie la quantité de données qu’un flux asynchrone tentera de lire à partir de la position actuelle. Les données sont lues en blocs en fonction de la taille de page du système de fichiers. Ainsi, si vous définissez readAhead sur 9 000 sur un système informatique dont la taille de page est de 8 Ko (8 192 octets), le moteur d’exécution lit 2 blocs ou 16 384 octets à la fois. La valeur par défaut de cette propriété est infinity : par défaut, un fichier ouvert pour une lecture asynchrone est lu jusqu’à la fin du fichier.

La lecture de données dans la mémoire tampon de lecture ne change pas la valeur de la propriété readAhead. Lorsque des données sont lues dans la mémoire tampon, de nouvelles données sont lues pour remplir la mémoire tampon de lecture.

La propriété readAhead n’a aucune incidence sur un fichier ouvert de façon synchrone.

Lorsque des données sont lues de façon asynchrone, l’objet FileStream déclenche des événements progress. Dans la méthode du gestionnaire de l’événement progress, vérifiez que le nombre requis d’octets est disponible (en vérifiant la propriété bytesAvailable), puis lisez les données dans la mémoire tampon de lecture à l’aide d’une méthode de lecture.

Le code suivant illustre l’utilisation de la propriété readAhead pour limiter la quantité de données lues dans un fichier à 100 octets : import flash.filesystem.*; var file:File = File.desktopDirectory.resolvePath("test.txt"); var fileStream:FileStream = new FileStream(); fileStream.readAhead = 100; fileStream.addEventListener(ProgressEvent.PROGRESS, readProgressHandler) fileStream.openAsync(file, FileMode.READ); var results:ByteArray; function readProgressHandler(event:ProgressEvent):void { if (fileStream.bytesAvailable >= 100) { fileStream.readBytes(results, 0, 100); } }
FileMode La classe FileMode définit les constantes de chaîne utilisées dans le paramètre fileMode des méthodes open() et openAsync() de la classe FileStream.Object La classe FileMode définit les constantes de chaîne utilisées dans le paramètre fileMode des méthodes open() et openAsync() de la classe FileStream. Le paramètre fileMode de ces méthodes déterminent les capacités disponibles pour l’objet FileStream après l’ouverture du fichier.

Les capacités suivantes sont disponibles, dans différentes combinaisons, selon la valeur du paramètre fileMode spécifiée dans la méthode d’ouverture :

  • Lecture—L’objet FileStream peut lire des données dans le fichier.
  • Ecriture—L’objet FileStream peut écrire des données dans le fichier.
  • Création—L’objet FileStream crée un fichier non existant, à l’ouverture.
  • Troncature à l’ouverture—Les données du fichier sont supprimées à l’ouverture (avant que d’autres ne soient écrites).
  • Ajout de données—Les données sont toujours écrites à la fin du fichier (lorsqu’une méthode d’écriture est appelée).

Le tableau suivant montre les capacités fournies par chaque constante de la classe FileMode lorsqu’elles sont appliquées sous forme de paramètre fileMode d’une méthode d’ouverture d’un objet FileStream :

Constante FileModeLectureEcritureCréationTroncature à l’ouvertureAjout de donnéesREAD WRITE APPEND UPDATE
FileStream.open()FileStream.openAsync()APPEND Utilisé pour ouvrir un fichier en mode écriture, toutes les données écrites étant ajoutées à la fin du fichier.appendString Utilisé pour ouvrir un fichier en mode écriture, toutes les données écrites étant ajoutées à la fin du fichier. A l’ouverture, tout fichier qui n’existe pas est créé. READ Utilisé pour ouvrir un fichier en mode lecture seule.readString Utilisé pour ouvrir un fichier en mode lecture seule. Le fichier doit exister (les fichiers absents ne sont pas créés). UPDATE Utilisé pour ouvrir un fichier en mode lecture/écriture.updateString Utilisé pour ouvrir un fichier en mode lecture/écriture. A l’ouverture, tout fichier qui n’existe pas est créé. WRITE Utilisé pour ouvrir un fichier en mode écriture seule.writeString Utilisé pour ouvrir un fichier en mode écriture seule. A l’ouverture, tout fichier qui n’existe pas est créé et les fichiers existants sont tronqués (leurs données sont supprimées).
StorageVolumeInfo L’objet StorageVolumeInfo distribue un objet StorageVolumeChangeEvent lors du montage ou du démontage d’un volume de stockage.flash.events:EventDispatcher L’objet StorageVolumeInfo distribue un objet StorageVolumeChangeEvent lors du montage ou du démontage d’un volume de stockage. La propriété statique StorageVolume.storageVolume fait référence à l’objet singleton StorageVolumeInfo, qui distribue les événements. La classe StorageVolumeInfo définit également une méthode getStorageVolumes pour répertorier les volumes de stockage actuellement montés.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur tous les périphériques AIR pour TV. Elle n’est en outre pas prise en charge sur les périphériques mobiles. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété StorageVolumeInfo.isSupported. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

Sur les distributions Linux modernes, l’objet StorageVolumeInfo distribue uniquement les événements storageVolumeMount et storageVolumeUnmount pour les périphériques physiques et les lecteurs réseau montés à des emplacements spécifiques.

storageVolumeUnmount Distribué lorsqu’un volume de stockage a été démonté.flash.events.StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNTflash.events.StorageVolumeChangeEvent Distribué lorsqu’un volume de stockage a été démonté.

Sur les distributions Linux modernes, l’objet StorageVolumeInfo distribue uniquement les événements storageVolumeMount et storageVolumeUnmount pour les périphériques physiques et les lecteurs réseau montés à des emplacements spécifiques.

storageVolumeMount Distribué lorsqu’un volume de stockage a été monté.flash.events.StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNTflash.events.StorageVolumeChangeEvent Distribué lorsqu’un volume de stockage a été monté.

Sur les distributions Linux modernes, l’objet StorageVolumeInfo distribue uniquement les événements storageVolumeMount et storageVolumeUnmount pour les périphériques physiques et les lecteurs réseau montés à des emplacements spécifiques.

getStorageVolumes Renvoie le vecteur des objets StorageVolume correspondant aux volumes de stockage actuellement montés. Renvoie le vecteur des objets StorageVolume correspondant aux volumes de stockage actuellement montés.

Sur les distributions Linux modernes, cette méthode renvoie les objets correspondant aux périphériques physiques et aux lecteurs réseau montés à des emplacements spécifiques.

Le code suivant indique le chemin d’accès natif correspondant au répertoire racine de chaque volume de stockage monté : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath); }
flash.filesystem.StorageVolume
isSupported La propriété isSupported est définie sur true si la classe StorageVolumeInfo est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false.Boolean La propriété isSupported est définie sur true si la classe StorageVolumeInfo est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. storageVolumeInfo Occurrence singleton de l’objet StorageVolumeInfo.flash.filesystem:StorageVolumeInfo Occurrence singleton de l’objet StorageVolumeInfo. Enregistrez les écouteurs d’événement dans cet objet pour les événements storageVolumeMount et storageVolumeUnmount.
File Un objet File représente un chemin vers un fichier ou un répertoire.flash.net:FileReference Un objet File représente un chemin vers un fichier ou un répertoire. Il peut s’agir d’un fichier ou d’un répertoire existant ou qui n’existe pas encore ; par exemple, il peut représenter le chemin vers un fichier ou un répertoire que vous envisagez de créer.

La classe File possède un certain nombre de propriétés et de méthodes qui lui permettent d’obtenir des informations sur le système de fichiers et d’exécuter des opérations, par exemple la copie de fichiers et de répertoires.

Vous pouvez utiliser des objets File avec la classe FileStream pour lire et écrire des fichiers.

La classe File étend la classe FileReference. La classe FileReference, disponible dans Flash® Player et dans Adobe® AIR®, représente un pointeur vers un fichier, mais la classe File ajoute des propriétés et des méthodes qui ne sont pas exposées dans Flash Player (dans un fichier SWF s’exécutant dans un navigateur) pour des raisons de sécurité.

La classe File contient des propriétés statiques qui vous permettent de référencer les emplacements de répertoire les plus fréquemment utilisés. Voici quelques unes de ces propriétés statiques :

  • File.applicationStorageDirectory : un répertoire de stockage spécifique à chaque application AIR installée
  • File.applicationDirectory : le répertoire en lecture seule dans lequel est installée l’application (et qui contient tout autre actif installé)
  • File.desktopDirectory : le répertoire Bureau de l’utilisateur
  • File.documentsDirectory : le répertoire documents de l’utilisateur
  • File.userDirectory : le répertoire de l’utilisateur

Ces propriétés ont des valeurs différentes selon le système d’exploitation. Par exemple, les chemins natifs vers le répertoire Bureau de l’utilisateur sont différents sous Mac OS, Linux et Windows. Néanmoins, la propriété File.desktopDirectory pointe vers le chemin du répertoire Bureau correct sur chacune de ces plateformes. Pour développer des applications qui fonctionnent correctement sur toutes les plateformes, utilisez ces propriétés comme base pour référencer d’autres fichiers dont se sert l’application. Utilisez ensuite la méthode resolvePath() pour affiner le chemin. Par exemple, le code suivant pointe vers le fichier preferences.xml dans le répertoire de stockage de l’application :

var prefsFile:File = File.applicationStorageDirectory; prefsFile = prefsFile.resolvePath("preferences.xml");

Si vous utilisez un chemin natif littéral lors du référencement d’un fichier, il ne fonctionnera que sur une seule plateforme. Par exemple, l’objet File suivant ne fonctionnerait que sous Windows :

new File("C:\Documents and Settings\joe\My Documents\test.txt")

Le répertoire de stockage de l’application est particulièrement utile. Il fournit un répertoire de stockage spécifique à l’application pour l’application AIR. Il est défini par la propriété File.applicationStorageDirectory.

N’ajoutez ni ne supprimez aucun contenu du répertoire de l’application (dans lequel est installée l’application AIR). Vous risquez en effet de rendre l’application AIR inutilisable et d’invalider la signature de l’application. Par défaut, AIR ne permet pas d’écrire dans le répertoire de l’application ; en effet, tous les comptes utilisateur ne sont pas habilités à écrire dans ce répertoire sur tous les systèmes d’exploitation. Utilisez le répertoire de stockage de l’application pour écrire des fichiers internes. Utilisez le répertoire documents pour écrire des fichiers que l’utilisateur pourra utiliser hors de l’application, notamment des images éditées ou des fichiers texte.

FileStreamdirectoryListing Distribué lorsqu’une liste de répertoires est disponible après un appel à la méthode getDirectoryListingAsync().flash.events.FileListEvent.DIRECTORY_LISTINGflash.events.FileListEvent Distribué lorsqu’une liste de répertoires est disponible après un appel à la méthode getDirectoryListingAsync(). File.getDirectoryListingAsync()selectMultiple Distribué lorsque l’utilisateur sélectionne des fichiers dans la boîte de dialogue ouverte par un appel à la méthode browseForOpenMultiple().flash.events.FileListEvent.SELECT_MULTIPLEflash.events.FileListEvent Distribué lorsque l’utilisateur sélectionne des fichiers dans la boîte de dialogue ouverte par un appel à la méthode browseForOpenMultiple(). browseForOpenMultiple()select Distribué lorsque l’utilisateur sélectionne un fichier ou un répertoire dans une boîte de dialogue de recherche de fichier ou de répertoire.flash.events.Event.SELECTflash.events.Event Distribué lorsque l’utilisateur sélectionne un fichier ou un répertoire dans une boîte de dialogue de recherche de fichier ou de répertoire. securityError Distribué lorsqu’une opération viole une contrainte de sécurité.flash.events.SecurityErrorEvent.SECURITY_ERRORflash.events.SecurityErrorEvent Distribué lorsqu’une opération viole une contrainte de sécurité. ioError Distribué lorsqu’une erreur se produit au cours d’une opération de fichier asynchrone.flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent Distribué lorsqu’une erreur se produit au cours d’une opération de fichier asynchrone. complete Distribué lorsqu’une opération asynchrone se termine.flash.events.Event.COMPLETEflash.events.Event Distribué lorsqu’une opération asynchrone se termine. cancel Distribué lorsqu’une opération asynchrone en attente est annulée.flash.events.Event.CANCELflash.events.Event Distribué lorsqu’une opération asynchrone en attente est annulée. File Fonction constructeur de la classe File.La syntaxe du paramètre path n’est pas valide. ArgumentErrorArgumentErrorpathStringnullChemin d’accès au fichier. Vous pouvez spécifier le chemin à l’aide d’une URL ou en utilisant une notation de chemin natif (spécifique à la plateforme).

Si vous spécifiez une URL, vous pouvez utiliser l’un des modèles d’URL suivants : file, app ou app-storage. Voici quelques valeurs valides pour le paramètre path avec la notation URL :

  • "app:/DesktopPathTest.xml"
  • "app-storage:/preferences.xml"
  • "file:///C:/Documents%20and%20Settings/bob/Desktop" (le bureau de l’ordinateur Windows de Bob)
  • "file:///Users/bob/Desktop" (le bureau de l’ordinateur Mac de Bob)

Les modèles d’URL app et app-storage sont utiles, car ils peuvent pointer vers un fichier valide sur tous les systèmes de fichier. Toutefois, dans les deux autres exemples qui utilisent le modèle d’URL file pour pointer vers le répertoire desktop de l’utilisateur, il serait préférable de transmettre l’argument no path au constructeur File(), puis d’affecter File.desktopDirectory à l’objet File car cette manière d’accéder au répertoire desktop est indépendante de la plateforme et de l’utilisateur.

Si vous spécifiez un chemin natif, sous Windows vous pouvez utiliser la barre oblique inversée ou la barre oblique comme séparateur de chemin dans cet argument ; sous Mac OS et Linux, utilisez la barre oblique. Voici quelques valeurs valides pour le paramètre path avec la notation de chemin natif :

  • "C:/Documents and Settings/bob/Desktop"
  • "/Users/bob/Desktop"

Toutefois, pour les deux exemples, il est préférable de transmettre l’argument no path au constructeur File(), puis d’affecter File.desktopDirectory à l’objet File car cette manière d’accéder au répertoire desktop est indépendante de la plateforme et de l’utilisateur.

Fonction constructeur de la classe File.

Si vous transmettez un argument path, l’objet File pointe vers le chemin spécifié et les propriétés nativePath et url sont définies de manière à refléter ce chemin.

Bien que vous puissiez transmettre un argument path pour spécifier un chemin de fichier, cela peut impliquer l’utilisation de code spécifique à une plateforme. Par exemple, un chemin natif tel que "C:\\\\Documents and Settings\\bob\\Desktop" ou une URL telle que "file:///C:/Documents%20and%20Settings/bob/Desktop" n’est valable que sous Windows. Il est donc préférable d’utiliser les propriétés statiques suivantes, qui représentent les répertoires les plus fréquemment utilisés et qui sont valables sur toutes les plateformes :

  • File.applicationDirectory
  • File.applicationStorageDirectory
  • File.desktopDirectory
  • File.documentsDirectory
  • File.userDirectory

Vous pouvez alors utiliser la méthode resolvePath() pour obtenir un chemin relatif à ces répertoires. Par exemple, le code suivant définit un objet File de sorte qu’il pointe vers le fichier settings.xml du répertoire de stockage de l’application :

var file:File = File.applicationStorageDirectory.resolvePath("settings.xml");

Important : si vous transmettez une chaîne URL dans le paramètre path, l’URL est décodée pour résoudre le chemin du fichier. Par exemple, l’instruction new File("file:///c:/test/demo%20file%201%2e0.txt") crée un objet File avec le chemin natif "c:\test\demo file 1.0.txt". (Une URL utilise les préfixes file:, app: ou app-storage:.) Toutefois, en cas d’omission des préfixes d’URL corrects, la chaîne du chemin est traitée comme un chemin natif et aucun décodage n’est effectué. Vous devez tenir compte de ce comportement lors de la validation de chemins dérivés de sources potentiellement non approuvées. Si vous vous contentez de valider la chaîne d’entrée, le décodage de l’URL peut permettre à un attaquant d’échapper à vos contrôles de validation. Nous vous conseillons de toujours valider le chemin final de l’objet File instancié :

var file:File = new File( taintedString ); validate( file.nativePath ); //where validate() is your path validation function
nativePath
browseForDirectory Ouvre une boîte de dialogue permettant à l’utilisateur de sélectionner un répertoire.Une opération de recherche (browseForOpen(), browseForOpenMultiple(), browseForSave(), browseForDirectory()) est en cours d’exécution. IllegalOperationErrorflash.errors:IllegalOperationErrorL’application ne dispose pas des autorisations nécessaires. SecurityErrorSecurityErrortitleStringChaîne affichée dans la barre de titres de la boîte de dialogue. Ouvre une boîte de dialogue permettant à l’utilisateur de sélectionner un répertoire. Lorsque l’utilisateur sélectionne le répertoire, l’événement select est distribué. La propriété target de l’événement select est l’objet File qui pointe vers le répertoire sélectionné.

La boîte de dialogue de sélection d’un répertoire n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété owner n’est pas nulle). Pour éviter des problèmes de classement de fenêtres, masquez les fenêtres possédées avant d’appeler cette méthode.

Remarque : browseForDirectory() n’est pas prise en charge sur les périphériques Android. L’objet File distribue immédiatement un événement cancel.

Le code suivant utilise la méthode File.browseForDirectory() pour laisser l’utilisateur choisir un répertoire. Une fois le répertoire sélectionné, le code énumère le contenu du répertoire sélectionné dans le résultat de la méthode trace() : import flash.filesystem.File; import flash.events.Event; var directory:File = File.documentsDirectory; try { directory.browseForDirectory("Select Directory"); directory.addEventListener(Event.SELECT, directorySelected); } catch (error:Error) { trace("Failed:", error.message); } function directorySelected(event:Event):void { directory = event.target as File; var files:Array = directory.getDirectoryListing(); for(var i:uint = 0; i < files.length; i++) { trace(files[i].name); } }
browseForOpen()browseForSave()selectflash.net.FileFiltercancelflash.events:EventDistribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir. Distribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir.selectflash.events:EventDistribué lorsque l’utilisateur sélectionne un répertoire et ferme la boîte de dialogue de sélection des répertoires. Distribué lorsque l’utilisateur sélectionne un répertoire et ferme la boîte de dialogue de sélection des répertoires.ioErrorflash.events:IOErrorEventL’opération de recherche n’est pas prise en charge sur cette plate-forme. L’opération de recherche n’est pas prise en charge sur cette plate-forme.
browseForOpenMultiple Affiche la boîte de dialogue Ouvrir qui permet à l’utilisateur de sélectionner un ou plusieurs fichiers à ouvrir.Une opération de recherche (browseForOpen(), browseForOpenMultiple(), browseForSave(), browseForDirectory()) est en cours d’exécution. IllegalOperationErrorflash.errors:IllegalOperationErrorL’application ne dispose pas des autorisations nécessaires. SecurityErrorSecurityErrortitleStringChaîne affichée dans la barre de titres de la boîte de dialogue. typeFilterArraynullTableau d’occurrences de FileFilter utilisé pour filtrer les fichiers qui s’affichent dans la boîte de dialogue. Si vous omettez ce paramètre, tous les fichiers s’affichent. Pour plus d’informations, voir la classe FileFilter. Affiche la boîte de dialogue Ouvrir qui permet à l’utilisateur de sélectionner un ou plusieurs fichiers à ouvrir.

Lorsque l’utilisateur sélectionne plusieurs fichiers, l’événement selectMultiple est distribué. La propriété target de l’événement select est cet objet File. Contrairement à browseForOpen(), avec la méthode browseForOpenMultiple(), cet objet File n’est pas mis à jour pour référencer l’un des fichiers choisis. A l’inverse, l’événement selectMultiple contient un tableau des fichiers choisis.

La boîte de dialogue Ouvrir n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété owner n’est pas nulle). Pour éviter des problèmes de classement de fenêtres, masquez les fenêtres possédées avant d’appeler cette méthode.

Remarque : il est impossible de définir le titre de la boîte de dialogue du fichier sur les périphériques Android. Le paramètre title est ignoré.

Le code suivant utilise la méthode File.browseForOpenMultiple() pour laisser l’utilisateur choisir plusieurs fichiers. Une fois les fichiers sélectionnés, le code renvoie les chemins correspondants. import flash.filesystem.*; import flash.events.FileListEvent; var docsDir:File = File.documentsDirectory; try { docsDir.browseForOpenMultiple("Select Files"); docsDir.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected); } catch (error:Error) { trace("Failed:", error.message); } function filesSelected(event:FileListEvent):void { for (var i:uint = 0; i < event.files.length; i++) { trace(event.files[i].nativePath); } }
browseForSave()browseForOpen()browseForDirectory()selectMultipleflash.net.FileFiltercancelflash.events:EventDistribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir. Distribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir.selectMultipleflash.events:FileListEventDistribué lorsque l’utilisateur sélectionne des fichiers et ferme la boîte de dialogue Ouvrir. Distribué lorsque l’utilisateur sélectionne des fichiers et ferme la boîte de dialogue Ouvrir.ioErrorflash.events:IOErrorEventL’opération de recherche n’est pas prise en charge sur cette plate-forme. L’opération de recherche n’est pas prise en charge sur cette plate-forme.
browseForOpen Affiche la boîte de dialogue Ouvrir qui permet à l’utilisateur de sélectionner un fichier à ouvrir.Une opération de recherche (browseForOpen(), browseForOpenMultiple(), browseForSave(), browseForDirectory()) est en cours d’exécution. IllegalOperationErrorflash.errors:IllegalOperationErrorL’application ne dispose pas des autorisations nécessaires. SecurityErrorSecurityErrortitleStringChaîne affichée dans la barre de titres de la boîte de dialogue. typeFilterArraynullTableau d’occurrences de FileFilter utilisé pour filtrer les fichiers qui s’affichent dans la boîte de dialogue. Si vous omettez ce paramètre, tous les fichiers s’affichent. Pour plus d’informations, voir la classe FileFilter. Affiche la boîte de dialogue Ouvrir qui permet à l’utilisateur de sélectionner un fichier à ouvrir.

Lorsque l’utilisateur sélectionne le fichier, l’événement select est distribué. La propriété target de l’événement select est l’objet File qui pointe vers le fichier sélectionné.

La boîte de dialogue Ouvrir n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété owner n’est pas nulle). Pour éviter des problèmes de classement de fenêtres, masquez les fenêtres possédées avant d’appeler cette méthode.

Remarque : il est impossible de définir le titre de la boîte de dialogue du fichier sur les périphériques Android. Le paramètre title est ignoré.

Le code suivant utilise la méthode File.browseForOpen() pour laisser l’utilisateur choisir un fichier texte. Lorsque le fichier est sélectionné, le code lit les données du fichier dans une chaîne. import flash.filesystem.*; import flash.events.Event; import flash.net.FileFilter; var fileToOpen:File = new File(); var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml"); try { fileToOpen.browseForOpen("Open", [txtFilter]); fileToOpen.addEventListener(Event.SELECT, fileSelected); } catch (error:Error) { trace("Failed:", error.message); } function fileSelected(event:Event):void { var stream:FileStream = new FileStream(); stream.open(event.target, FileMode.READ); var fileData:String = stream.readUTFBytes(stream.bytesAvailable); trace(fileData); }
browseForSave()browseForOpenMultiple()browseForDirectory()selectflash.net.FileFiltercancelflash.events:EventDistribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir. Distribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Ouvrir.selectflash.events:EventDistribué lorsque l’utilisateur sélectionne un fichier et ferme la boîte de dialogue Ouvrir. Distribué lorsque l’utilisateur sélectionne un fichier et ferme la boîte de dialogue Ouvrir.ioErrorflash.events:IOErrorEventL’opération de recherche n’est pas prise en charge sur cette plate-forme. L’opération de recherche n’est pas prise en charge sur cette plate-forme.
browseForSave Affiche la boîte de dialogue Enregistrer le fichier dans laquelle l’utilisateur peut sélectionner la destination du fichier.Une opération de recherche (browseForOpen(), browseForOpenMultiple(), browseForSave(), browseForDirectory()) est en cours d’exécution. IllegalOperationErrorflash.errors:IllegalOperationErrorL’application ne dispose pas des autorisations nécessaires. SecurityErrorSecurityErrortitleStringChaîne affichée dans la barre de titres de la boîte de dialogue. Affiche la boîte de dialogue Enregistrer le fichier dans laquelle l’utilisateur peut sélectionner la destination du fichier.

Lorsque l’utilisateur sélectionne le fichier, l’événement select est distribué. La propriété target de l’événement select est l’objet File qui pointe vers la destination d’enregistrement sélectionnée.

La boîte de dialogue Enregistrer le fichier n’est pas toujours affichée devant les fenêtres appartenant à une autre fenêtre (fenêtres dont la propriété owner n’est pas nulle). Pour éviter des problèmes de classement de fenêtres, masquez les fenêtres possédées avant d’appeler cette méthode.

Remarque : il est impossible de définir le titre de la boîte de dialogue du fichier sur les périphériques Android. Le paramètre title est ignoré.

Le code suivant utilise la méthode File.browseForSave() pour permettre à l’utilisateur de sélectionner le chemin d’enregistrement d’un fichier. Une fois les fichiers sélectionnés, le code enregistre les données sur le chemin de fichier sélectionné. import flash.filesystem.*; import flash.events.Event; var docsDir:File = File.documentsDirectory; try { docsDir.browseForSave("Save As"); docsDir.addEventListener(Event.SELECT, saveData); } catch (error:Error) { trace("Failed:", error.message); } function saveData(event:Event):void { var newFile:File = event.target as File; var str:String = "Hello."; if (!newFile.exists) { var stream:FileStream = new FileStream(); stream.open(newFile, FileMode.WRITE); stream.writeUTFBytes(str); stream.close(); } }
browseForDirectory()browseForOpen()selectflash.net.FileFiltercancelflash.events:EventDistribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Enregistrer le fichier. Distribué lorsque l’utilisateur clique sur le bouton Annuler dans la boîte de dialogue Enregistrer le fichier.selectflash.events:EventDistribué lorsque l’utilisateur sélectionne un fichier et ferme la boîte de dialogue Enregistrer le fichier. Distribué lorsque l’utilisateur sélectionne un fichier et ferme la boîte de dialogue Enregistrer le fichier.ioErrorflash.events:IOErrorEventL’opération de recherche n’est pas prise en charge sur cette plate-forme. L’opération de recherche n’est pas prise en charge sur cette plate-forme.
cancel Annule toute opération asynchrone en attente. Annule toute opération asynchrone en attente. canonicalize Rend le chemin de l’objet File canonique. Rend le chemin de l’objet File canonique.

Si l’objet File représente un fichier ou un répertoire existant, sa mise en forme canonique ajuste le chemin de sorte qu’il corresponde à la casse du nom réel du fichier ou du répertoire. Si l’objet File est un lien symbolique, sa mise en forme canonique ajuste le chemin de sorte qu’il corresponde au fichier ou au répertoire vers lequel pointe le lien, que ce fichier ou ce répertoire existe ou non. Sur les systèmes de fichiers sensibles à la casse (tels que Linux), lorsque plusieurs noms de fichier ne diffèrent que par la casse, la méthode canonicalize() ajuste le chemin de sorte qu’il corresponde au premier fichier détecté (dans l’ordre déterminé par le système de fichiers).

De plus, la mise en forme canonique convertit les noms de fichier courts en noms de fichier longs sous Windows.

Le code suivant illustre l’utilisation de la méthode canonicalize() pour identifier la casse correcte du nom d’un répertoire. Avant d’exécuter cet exemple, créez un répertoire AIR Test sur le bureau de votre ordinateur. import flash.filesystem.*; var path:File = File.desktopDirectory.resolvePath("air test"); trace(path.nativePath); path.canonicalize(); trace(path.nativePath); // ...\AIR Test Le code suivant illustre l’utilisation de la méthode canonicalize() pour rechercher le nom long d’un répertoire Windows à partir de son nom court. Cet exemple présume qu’un répertoire AIR Test existe à la racine du lecteur C: et que le système lui a attribué le nom court AIR~1. import flash.filesystem.*; var path:File = new File(); path.nativePath = "C:\\AIR~1"; path.canonicalize(); trace(path.nativePath); // C:\AIR Test
clone Renvoie une copie de cet objet File.flash.filesystem:File Renvoie une copie de cet objet File. Les inscriptions d’événements ne sont pas copiées.

Remarque : cette méthode ne copie pas le fichier lui-même. Elle effectue simplement une copie de l’occurrence de l’objet File ActionScript. Pour copier un fichier, utilisez la méthode copyTo().

copyToAsync Commence par copier le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File à l’emplacement spécifié par le paramètre destination.L’application ne dispose pas des autorisations nécessaires pour écrire dans la destination. SecurityErrorSecurityErrornewLocationflash.net:FileReferenceEmplacement de destination du nouveau fichier. Notez que cet objet File spécifie le fichier ou le répertoire résultant (copié), pas le chemin du répertoire conteneur. overwriteBooleanfalseSi false, la copie échoue si le fichier spécifié par le fichier target existe déjà. Si la valeur est true, l’opération remplace tout fichier ou répertoire portant le même nom. Commence par copier le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File à l’emplacement spécifié par le paramètre destination.

Lorsque l’opération est terminée, un événement complete (réussite) ou ioError (échec) est renvoyé. Le processus de copie crée tous les répertoires parent requis (si possible).

Le code suivant illustre l’utilisation de la méthode copyToAsync() pour copier un fichier. Avant d’exécuter ce code, assurez-vous de créer un fichier test1.txt dans le sous-répertoire AIR Test du répertoire documents de votre ordinateur. Le fichier résultant est nommé test2.txt et est également situé dans le sous-répertoire AIR Test. Lorsque vous définissez le paramètre overwrite sur true, l’opération remplace tout fichier test2.txt existant. import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); sourceFile.copyToAsync(destination, true); sourceFile.addEventListener(Event.COMPLETE, fileCopiedHandler); function fileCopiedHandler(event:Event):void { trace("Done."); }
copyTo()moveToAsync()completeflash.events:EventDistribué lorsque le fichier ou le répertoire a bien été copié. Distribué lorsque le fichier ou le répertoire a bien été copié.ioErrorflash.events:IOErrorEventLa source n’existe pas ou la destination existe et overwrite est false ; ou la source n’a pas pu être copiée à destination ; ou la source et la destination font référence au même fichier ou dossier et overwrite est défini sur true. Windows ne permet pas à l’utilisateur de copier un fichier ouvert ou un répertoire contenant un fichier ouvert. La source n’existe pas ou la destination existe et overwrite est false ; ou la source n’a pas pu être copiée à destination ; ou la source et la destination font référence au même fichier ou dossier et overwrite est défini sur true.
copyTo Copie le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File à l’emplacement spécifié par le paramètre newLocation.La source n’existe pas ou la destination existe et overwrite est false ; ou la source n’a pas pu être copiée à destination ; ou la source et la destination font référence au même fichier ou dossier et overwrite est défini sur true. Windows ne permet pas à l’utilisateur de copier un fichier ouvert ou un répertoire contenant un fichier ouvert. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires pour écrire dans la destination. SecurityErrorSecurityErrornewLocationflash.net:FileReferenceEmplacement de destination du nouveau fichier. Notez que cet objet File spécifie le fichier ou le répertoire résultant (copié), pas le chemin du répertoire conteneur. overwriteBooleanfalseSi false, la copie échoue si le fichier spécifié par le paramètre target existe déjà. Si la valeur est true, l’opération remplace tout fichier ou répertoire portant le même nom. Copie le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File à l’emplacement spécifié par le paramètre newLocation. Le processus de copie crée tous les répertoires parent requis (si possible). Le code suivant illustre l’utilisation de la méthode copyTo() pour copier un fichier. Avant d’exécuter ce code, créez un fichier test1.txt dans le sous-répertoire AIR Test du répertoire documents de votre ordinateur. Le fichier résultant est nommé test2.txt et est également situé dans le sous-répertoire AIR Test. Lorsque vous définissez le paramètre overwrite sur true, l’opération remplace tout fichier test2.txt existant. import flash.filesystem.File; import flash.events.Event; var sourceFile:FileReference = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:FileReference = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); if (sourceFile.copyTo(destination, true)) { trace("Done."); } Le code suivant illustre l’utilisation de la méthode copyTo() pour copier un fichier. Avant d’exécuter ce code, créez un fichier test1.txt dans le sous-répertoire AIR Test du répertoire d’accueil de votre ordinateur. Le fichier résultant est nommé test2.txt. Les instructions try et catch indiquent comment répondre aux erreurs. import flash.filesystem.File; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/test2.txt"); try { sourceFile.copyTo(destination, true); } catch (error:Error) { trace("Error:", error.message); } copyToAsync()moveTo()createDirectory Crée le répertoire spécifié et tous les répertoires parent nécessaires.Le répertoire n’existait pas et n’a pas pu être créé. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires. SecurityErrorSecurityError Crée le répertoire spécifié et tous les répertoires parent nécessaires. Si le répertoire existe déjà, aucune action n’est effectuée. Le code suivant déplace le fichier test.txt situé sur le bureau vers le sous-répertoire AIR Test du répertoire documents. L’appel de la méthode createDirectory() vérifie l’existence du répertoire AIR Test avant de déplacer le fichier. import flash.filesystem.*; var source:File = File.desktopDirectory.resolvePath("test.txt"); var target:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var targetParent:File = target.parent; targetParent.createDirectory(); source.moveTo(target, true); createTempDirectory Renvoie une référence à un nouveau répertoire temporaire.Objet File référençant le nouveau répertoire temporaire. flash.filesystem:File Renvoie une référence à un nouveau répertoire temporaire. Il s’agit d’un nouveau répertoire dans le chemin de répertoire temporaire du système.

Cette méthode permet d’identifier un nouveau répertoire unique sans avoir à demander au système de vérifier qu’il est nouveau et unique.

Vous pouvez supprimer le répertoire temporaire avant de fermer l’application, puisqu’il n’est pas supprimé automatiquement sur certains périphériques.

Le code suivant utilise la méthode createTempFile() pour obtenir une référence à un nouveau répertoire temporaire. import flash.File; var temp:File = File.createTempDirectory(); trace(temp.nativePath); Chaque fois que vous exécutez ce code, un nouveau fichier (unique) est créé.
createTempFile()
createTempFile Renvoie une référence à un nouveau fichier temporaire.Objet File référençant le nouveau fichier temporaire. flash.filesystem:File Renvoie une référence à un nouveau fichier temporaire. Il s’agit d’un nouveau fichier dans le chemin de répertoire temporaire du système.

Cette méthode permet d’identifier un nouveau fichier unique sans avoir à demander au système de vérifier que le fichier est nouveau et unique.

Vous pouvez supprimer le fichier temporaire avant de fermer l’application puisqu’il n’est pas supprimé automatiquement.

Le code suivant utilise la méthode createTempFile() pour obtenir une référence à un nouveau fichier temporaire. import flash.File; var temp:File = File.createTempFile(); trace(temp.nativePath); Chaque fois que vous exécutez ce code, un nouveau fichier (unique) est créé.
createTempDirectory()
deleteDirectoryAsync Supprime le répertoire de façon asynchrone.L’application ne dispose pas des autorisations nécessaires pour supprimer le répertoire. SecurityErrorSecurityErrordeleteDirectoryContentsBooleanfalseIndique si le répertoire qui contient des fichiers ou des sous-répertoires doit être supprimé. Si false et si le répertoire contient des fichiers ou des répertoires, l’objet File renvoie un événement ioError. Supprime le répertoire de façon asynchrone. Si ce fichier est un lien symbolique à un répertoire, seul le lien (et non le répertoire) est supprimé. deleteDirectory()deleteFileAsync()moveToTrashAsync()completeflash.events:EventDistribué lorsque le répertoire a bien été supprimé. Distribué lorsque le répertoire a bien été supprimé.ioErrorflash.events:IOErrorEventLe répertoire n’existe pas ou n’a pas pu être supprimé. Windows ne permet pas à l’utilisateur de supprimer un répertoire qui contient un fichier ouvert. Le répertoire n’existe pas ou n’a pas pu être supprimé.deleteDirectory Supprime le répertoire.Le répertoire n’existe pas ou n’a pas pu être supprimé. Windows ne permet pas à l’utilisateur de supprimer un répertoire qui contient un fichier ouvert. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires pour supprimer le répertoire. SecurityErrorSecurityErrordeleteDirectoryContentsBooleanfalseIndique si le répertoire qui contient des fichiers ou des sous-répertoires doit être supprimé. Si false, et que le répertoire contient des fichiers ou des sous-répertoires, un appel à cette méthode renvoie une exception. Supprime le répertoire. Si ce fichier est un lien symbolique à un répertoire, seul le lien (et non le répertoire) est supprimé. Le code suivant crée un répertoire vide, puis utilise la méthode deleteDirectory() pour le supprimer. import flash.filesystem.File; var directory:File = File.documentsDirectory.resolvePath("Empty Junk Directory/"); File.createDirectory(directory); trace(directory.exists); // true directory.deleteDirectory(); trace(directory.exists); // false deleteDirectoryAsync()deleteFile()moveToTrash()deleteFileAsync Supprime le fichier de façon asynchrone.L’application ne dispose pas des autorisations nécessaires pour supprimer le fichier. SecurityErrorSecurityError Supprime le fichier de façon asynchrone. Si ce fichier est un lien symbolique, seul le lien (et non le fichier cible) est supprimé. deleteDirectoryAsync()deleteFile()moveToTrashAsync()completeflash.events:EventDistribué lorsque le fichier a bien été supprimé. Distribué lorsque le fichier a bien été supprimé.ioErrorflash.events:IOErrorEventLe fichier n’existe pas ou n’a pas pu être supprimé. Windows ne permet pas de supprimer un fichier ouvert. Le fichier n’existe pas ou n’a pas pu être supprimé.deleteFile Supprime le fichier.Le fichier n’existe pas ou n’a pas pu être supprimé. Windows ne permet pas de supprimer un fichier ouvert. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires pour supprimer le fichier. SecurityErrorSecurityError Supprime le fichier. Si ce fichier est un lien symbolique, seul le lien (et non le fichier cible) est supprimé. Le code suivant crée un fichier temporaire, puis appelle la méthode deleteFile() pour le supprimer. import flash.filesystem.*; var file:File = File.createTempFile(); trace(file.exists); // true file.deleteFile(); trace(file.exists); // false deleteDirectory()deleteFileAsync()moveToTrash()getDirectoryListingAsync Récupère de façon asynchrone un tableau d’objets File correspondant au contenu du répertoire représenté par cet objet File. Récupère de façon asynchrone un tableau d’objets File correspondant au contenu du répertoire représenté par cet objet File. Le code suivant illustre l’utilisation de la méthode getDirectoryListingAsync() pour énumérer le contenu du répertoire user. import flash.filesystem.File; import flash.events.FileListEvent; var directory:File = File.userDirectory; directory.getDirectoryListingAsync(); directory.addEventListener(FileListEvent.DIRECTORY_LISTING, directoryListingHandler); function directoryListingHandler(event:FileListEvent):void { var list:Array = event.files; for (var i:uint = 0; i < list.length; i++) { trace(list[i].nativePath); } } getDirectoryListing()getRootDirectories()événement directoryListingioErrorflash.events:ErrorEventVous ne disposez pas des autorisations appropriées pour lire ce répertoire, ou le répertoire n’existe pas. Vous ne disposez pas des autorisations appropriées pour lire ce répertoire, ou le répertoire n’existe pas.directoryListingflash.events:FileListEventLe contenu du répertoire a bien été énuméré. L’événement contents comprend une propriété files correspondant au tableau résultant d’objets File. Le contenu du répertoire a bien été énuméré.getDirectoryListing Renvoie un tableau d’objets File correspondant aux fichiers et aux répertoires du répertoire représenté par cet objet File.Tableau d’objets File. Array Renvoie un tableau d’objets File correspondant aux fichiers et aux répertoires du répertoire représenté par cet objet File. Cette méthode n’explore pas le contenu des sous-répertoires. Le code suivant illustre l’utilisation de la méthode getDirectoryListing() pour énumérer le contenu du répertoire user. import flash.filesystem.File; var directory:File = File.userDirectory; var list:Array = directory.getDirectoryListing(); for (var i:uint = 0; i < list.length; i++) { trace(list[i].nativePath); } getDirectoryListingAsync()getRootDirectories()getRelativePath Recherche le chemin relatif entre deux chemins File.La référence est définie sur null. ArgumentErrorArgumentErrorL’appelant n’est pas dans le sandbox de sécurité de l’application. SecurityErrorSecurityErrorChemin relatif entre ce fichier (ou répertoire) et le fichier ref (ou répertoire), si possible ; autrement, null. Stringrefflash.net:FileReference Objet File pour lequel le chemin est donné. useDotDotBooleanfalse Spécifie si le chemin relatif résultant peut utiliser des composants « .. » . Recherche le chemin relatif entre deux chemins File.

Le chemin relatif est la liste des composants qui peuvent être ajoutés (résolus par) à cette référence pour localiser la seconde référence (paramètre). Le chemin relatif est renvoyé avec le caractère de séparation « / ».

Les chemins relatifs peuvent éventuellement contenir des références « .. », mais de tels chemins ne traversent pas les limites de volumes visibles.

getRootDirectories Renvoie un tableau d’objets File, indiquant les répertoires racine du système de fichiers.Tableau d’objets File énumérant les répertoires racine. Array Renvoie un tableau d’objets File, indiquant les répertoires racine du système de fichiers.

Sous Windows, par exemple, il s’agit de la liste des volumes tels que les lecteurs C: et D:. Les lecteurs vides, tels que des lecteurs CD ou DVD, dans lesquels aucun disque n’était inséré ne sont pas inclus dans ce tableau. Sous Mac et Linux, cette méthode renvoie le répertoire racine unique de la machine (le répertoire « / »).

Sur les systèmes de fichiers pour lesquels la racine n’est plus lisible, notamment le système de fichiers d’Android, les propriétés de l’objet File renvoyé ne reflètent pas toujours la valeur true. Par exemple, sur Android, la propriété spaceAvailable indique 0.

Le code suivant renvoie la liste des répertoires racine : import flash.filesystem.File; var rootDirs:Array = File.getRootDirectories(); for (var i:uint = 0; i < rootDirs.length; i++) { trace(rootDirs[i].nativePath); }
moveToAsync Commence par déplacer le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File vers l’emplacement spécifié par le paramètre newLocation.L’application ne dispose pas des autorisations nécessaires pour déplacer le fichier. SecurityErrorSecurityErrornewLocationflash.net:FileReferenceEmplacement cible du déplacement. Cet objet spécifie le chemin du fichier ou du répertoire résultant (déplacé), pas le chemin du répertoire conteneur. overwriteBooleanfalseSi false, le déplacement échoue si le fichier target existe déjà. Si la valeur est true, l’opération remplace tout fichier ou répertoire portant le même nom. Commence par déplacer le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File vers l’emplacement spécifié par le paramètre newLocation.

Pour renommer un fichier, définissez le paramètre destination de sorte qu’il pointe vers un chemin situé dans le répertoire du fichier, mais avec un autre nom.

Le processus de déplacement crée tous les répertoires parent requis (si possible).

Le code suivant illustre l’utilisation de la méthode moveToAsync() pour renommer un fichier. Le nom d’origine du fichier est test1.txt et le nom résultant test2.txt. Comme les objets File source et cible pointent vers le même répertoire (le sous-répertoire Apollo Test du répertoire documents de l’utilisateur), la méthode moveToAsync() renomme le fichier au lieu de le déplacer vers un nouveau répertoire. Avant d’exécuter ce code, créez un fichier test1.txt dans le sous-répertoire Apollo Test du répertoire documents de votre ordinateur. Lorsque vous définissez le paramètre overwrite sur true, l’opération remplace tout fichier test2.txt existant. import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("Apollo Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("Apollo Test/test2.txt"); var sourceFile.moveToAsync(destination, true); sourceFile.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); function fileMoveCompleteHandler(event:Event):void { trace("Done.") }
copyToAsync()moveTo()moveToTrashAsync()completeflash.events:EventDistribué lorsque le fichier ou le répertoire a bien été déplacé. Distribué lorsque le fichier ou le répertoire a bien été déplacé.ioErrorflash.events:IOErrorEventLa source n’existe pas ; ou la destination existe et overwrite est défini sur false ; ou la source n’a pas pu être déplacée vers la cible ; ou la source et la destination font référence au même fichier ou dossier et overwrite est définie sur true. Windows ne permet pas à l’utilisateur de déplacer un fichier ouvert ou un répertoire contenant un fichier ouvert. La source n’existe pas ; ou la cible existe et overwrite est défini sur false ; ou la source n’a pas pu être déplacée vers la cible ; ou la source et la définition font référence au même fichier ou dossier et overwrite est défini sur true.
moveToTrashAsync Déplace un fichier ou un répertoire vers la corbeille de façon asynchrone.L’application ne dispose pas des autorisations nécessaires pour déplacer le fichier vers la corbeille. SecurityErrorSecurityError Déplace un fichier ou un répertoire vers la corbeille de façon asynchrone.

Remarque : sur les systèmes d’exploitation qui ne prennent pas en charge le concept d’un dossier de corbeille récupérable, ces fichiers sont immédiatement supprimés.

moveToTrash()ioErrorflash.events:IOErrorEventLe système d’exploitation n’a pas autorisé l’opération ou le fichier ou le répertoire n’existe pas. Windows ne permet pas à l’utilisateur de déplacer un fichier ouvert ou un répertoire contenant un fichier ouvert. Le système d’exploitation n’a pas autorisé l’opération ou le fichier ou le répertoire n’existe pas. completeflash.events:EventDistribué lorsque le fichier ou le répertoire a bien été déplacé vers la corbeille. Distribué lorsque le fichier ou le répertoire a bien été déplacé vers la corbeille.
moveToTrash Déplace un fichier ou un répertoire vers la corbeille.Le système d’exploitation n’a pas autorisé l’opération ou le fichier ou le répertoire n’existe pas. Windows ne permet pas à l’utilisateur de déplacer un fichier ouvert ou un répertoire contenant un fichier ouvert. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires pour déplacer le fichier vers la corbeille. SecurityErrorSecurityError Déplace un fichier ou un répertoire vers la corbeille.

Remarque : sur les systèmes d’exploitation qui ne prennent pas en charge le concept d’un dossier de corbeille récupérable, ces fichiers sont immédiatement supprimés.

moveToTrashAsync()
moveTo Déplace le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File vers l’emplacement spécifié par le paramètre destination.La source n’existe pas ou la destination existe et overwrite est défini sur false ; ou le fichier source n’a pas pu être déplacé vers l’emplacement cible ; ou la source et la destination font référence au même fichier ou dossier et overwrite est défini sur true. Windows ne permet pas à l’utilisateur de déplacer un fichier ouvert ou un répertoire contenant un fichier ouvert. IOErrorflash.errors:IOErrorL’application ne dispose pas des autorisations nécessaires pour déplacer le fichier. SecurityErrorSecurityErrornewLocationflash.net:FileReferenceEmplacement cible du déplacement. Cet objet spécifie le chemin du fichier ou du répertoire résultant (déplacé), pas le chemin du répertoire conteneur. overwriteBooleanfalseSi false, le déplacement échoue si le fichier target existe déjà. Si la valeur est true, l’opération remplace tout fichier ou répertoire portant le même nom. Déplace le fichier ou le répertoire situé à l’emplacement spécifié par cet objet File vers l’emplacement spécifié par le paramètre destination.

Pour renommer un fichier, définissez le paramètre destination de sorte qu’il pointe vers un chemin situé dans le répertoire du fichier, mais avec un autre nom.

Le processus de déplacement crée tous les répertoires parent requis (si possible).

Le code suivant illustre l’utilisation de la méthode moveTo() pour renommer un fichier. Le nom d’origine du fichier est test1.txt et le nom résultant test2.txt. Comme les objets File source et cible pointent vers le même répertoire (le sous-répertoire Apollo Test du répertoire documents de l’utilisateur), la méthode moveTo() renomme le fichier au lieu de le déplacer vers un nouveau répertoire. Avant d’exécuter ce code, créez un fichier test1.txt dans le sous-répertoire AIR Test du répertoire documents de votre ordinateur. Lorsque vous définissez le paramètre overwrite sur true, l’opération remplace tout fichier test2.txt existant. import flash.filesystem.File; import flash.events.Event; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("Apollo Test/test2.txt"); try { sourceFile.moveTo(destination, true); } catch (error:Error) { trace("Error:" + error.message); } Le code suivant illustre l’utilisation de la méthode moveTo() pour déplacer un fichier. Le fichier d’origine est le fichier test1.txt du sous-répertoire Apollo Test du répertoire documents de l’utilisateur, et la méthode le déplace vers le sous-répertoire Results. Avant d’exécuter ce code, créez un fichier test1.txt dans le sous-répertoire AIR Test du répertoire d’accueil de votre ordinateur. Les instructions try et catch indiquent comment répondre aux erreurs. import flash.filesystem.File; var sourceFile:File = File.documentsDirectory; sourceFile = sourceFile.resolvePath("AIR Test/test1.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test/Results/test1.txt"); try { sourceFile.moveTo(destination, true); } catch (error:Error) { trace("Error:" + error.message); }
copyTo()moveToAsync()moveToTrash()
openWithDefaultApplication Ouvre le fichier dans l’application désignée par le système d’exploitation pour ouvrir ce type de fichier.(Mac OS et Linux) Aucune application capable d’ouvrir le fichier n’a été trouvée. (Sous Windows, toute tentative d’ouverture d’un fichier auquel aucune application n’est associée échoue silencieusement, sans aucune exception.) ErrorErrorLe fichier se trouve dans le répertoire de l’application, ou il appartient à un type de fichier interdit. Cette erreur ne s’applique pas aux applications AIR installées avec un programme d’installation appartenant à l’application native (applications dotées d’un profil de bureau étendu). IllegalOperationErrorflash.errors:IllegalOperationErrorLe fichier n’existe pas ou aucune application n’est désignée pour ouvrir le fichier. IOErrorflash.errors:IOErrorLe fichier n’existe pas. ReferenceErrorReferenceError Ouvre le fichier dans l’application désignée par le système d’exploitation pour ouvrir ce type de fichier.

AIR vous empêche d’utiliser la méthode File.openWithDefaultApplication() pour ouvrir certains fichiers. Sous Windows, AIR vous empêche d’ouvrir les fichiers d’un certain type (fichiers avec des extensions spécifiques, répertoriées ci-dessous). Sous Mac OS et Linux, AIR vous empêche d’ouvrir les fichiers qui s’ouvrent dans des applications spécifiques, indiquées ci-dessous. Toute tentative d’ouvrir l’un de ces fichiers à l’aide de la méthode openWithDefaultApplication() renvoie une exception. Toutefois, les applications AIR installées avec un programme d’installation natif (applications dotées d’un profil étendu de bureau) ne sont pas soumises à ces limitations et peuvent ouvrir tous types de fichiers.

Vous ne pouvez pas ouvrir les documents à partir du répertoire de l’application.

Les tableaux ci-dessous répertorient les extensions de fichier qui ne sont pas autorisées sous Windows, ainsi que les applications non autorisées sous Mac OS et Linux :

Extension du document sous Windows Type Application équivalente sous Mac OS Application équivalente sous Linux bat Commande de traitement de fichiers par lots Terminal Aucune application par défaut cmd DOS et fichier de commande Windows Terminal Aucune application par défaut com Commande Terminal Aucune application par défaut csh Script de shell csh UNIX Terminal /bin/csh dash Script de shell dash UNIX Terminal /bin/dash ksh Script de shell ksh UNIX Terminal /bin/ksh sh Script de shell UNIX Terminal /bin/bash tcsh Script de shell tcsh UNIX Terminal /bin/tcsh zsh Script de shell zsh UNIX Terminal /bin/zsh exe Fichier exécutable Bit exécutable, extension .app /lib/ld.so lnk Fichier de raccourci Windows Bit exécutable, extension .app Liens sous Linux, jeu de bits exécutables, aucune application par défaut pif Fichier d’informations du programme Bit exécutable, extension .app S/O reg Informations/clé de registre pour Windows 95/98, Fichier de registre de données S/O S/O scf Commande de Windows Explorer ScriptEditor, AutomatorRunner S/O shb, shs Fichier Shell Scrap Objet S/O S/O prg Fichier de programme S/O S/O vb, vbe, vbs Fichiers VBScript S/O S/O vsmacros Projet macro binaire Visual Studio .NET S/O S/O ws, wsc, wsf, wsh Fichiers de script Windows ScriptEditor, AutomatorRunner S/O fxp Code source compilé Fox Pro S/O S/O mas Procédures stockées de Microsoft Access S/O S/O scr Economiseur d’écran de Windows S/O S/O py, pyc Fichier de script Python Python Python pl Fichier de script Perl Terminal perl cgi Fichier de script Common Gateway Interface Terminal perl msi, msm, msp, mst, idt, cub, pcp Fichier d’installation Windows Programme d’installation S/O job Objet de tâche du Planificateur de tâches de Windows S/O S/O jar, js, jse Fichier d’archive Java, fichier JavaScript, fichier de script codé JScript JarLauncher jar url Raccourci Internet S/O S/O hta Application HTML S/O S/O

Mac OS X uniquement Type Application de Mac OS X Application équivalente sous Linux S/O Applet Java Mac OS X AppletLauncher S/O S/O Plug-in AppleScript Mac OS X systemevents S/O S/O Widget Mac OS X dock, dashboardlauncher S/O

Extension de document sous Linux uniquement Type Application équivalente sous Mac OS X Application Linux rb Script de shell Ruby S/O ruby desktop Fichiers et raccourcis du bureau S/O Aucune application par défaut directory Fichiers et raccourcis du répertoire S/O Aucune application par défaut

Le code suivant permet à l’utilisateur de naviguer vers un fichier MP3 et de l’ouvrir dans l’application par défaut destinée à la lecture de fichiers MP3. import flash.filesystem.File; import flash.net.FileFilter; var file:File = File.documentsDirectory; var mp3Filter:FileFilter = new FileFilter("MP3 Files", "*.mp3"); file.browseForOpen("Open", [mp3Filter]); file.addEventListener(Event.SELECT, fileSelected); function fileSelected(e:Event):void { file.openWithDefaultApplication(); }
downloadedNativeProcess
resolvePath Crée un nouvel objet File avec un chemin relatif au chemin de cet objet File, en fonction du paramètre path (une chaîne).Nouvel objet File pointant vers le chemin résultant. flash.filesystem:FilepathStringChemin à ajouter à la fin du chemin de cet objet File (si le paramètre path est un chemin relatif) ; ou chemin à renvoyer (si le paramètre path est un chemin absolu). Crée un nouvel objet File avec un chemin relatif au chemin de cet objet File, en fonction du paramètre path (une chaîne).

Vous pouvez utiliser un chemin relatif ou absolu comme paramètre path.

Si vous spécifiez un chemin relatif, le paramètre path fourni est ajouté à la fin du chemin de l’objet File. Toutefois, l’utilisation de « .. » dans le paramètre path peut renvoyer un chemin résultant qui n’est pas un enfant de l’objet File. La référence résultante n’a pas besoin de faire référence à un emplacement réel du système de fichiers.

Si vous spécifiez une référence de fichier absolu, la méthode renvoie l’objet File pointant vers ce chemin. La référence de fichier absolu doit utiliser une syntaxe de chemin native valide pour le système d’exploitation de l’utilisateur (par exemple "C:\\test" sous Windows). N’utilisez pas d’URL (par exemple "file:///c:/test") comme paramètre path.

Tous les chemins résultants sont normalisés comme suit :

  • Tout élément « . » est ignoré.
  • Tout élément « .. » détruit son entrée parent.
  • Aucune référence « .. » qui atteint la racine du système de fichiers ou la racine de stockage de l’application ne passe ce noeud ; elle est ignorée.

Veillez à toujours utiliser la barre oblique ( / ) comme séparateur de chemin. Sous Windows, vous pouvez également utiliser la barre oblique inverse (\), bien que cela ne soit pas recommandé. Si vous utilisez la barre oblique inverse, certaines applications risquent de ne pas fonctionner sur d’autres plates-formes.

Sous Linux, les noms de fichier et les noms de répertoire sont sensibles à la casse.

applicationDirectory Dossier contenant les fichiers installés de l’application.flash.filesystem:File Dossier contenant les fichiers installés de l’application.

La propriété url de cet objet utilise le modèle d’URL app (pas le modèle d’URL file). Cela signifie que la chaîne url est spécifiée en commençant par "app:" (pas par "file:"). De même, si vous créez un objet File relatif au répertoire File.applicationDirectory (en utilisant la méthode resolvePath()), la propriété url de l’objet File utilise également le modèle d’URL app.

Remarque : vous ne pouvez pas écrire dans des fichiers ou des répertoires dont le chemin utilise le modèle d’URL app:. Vous ne pouvez pas non plus supprimer ni créer des fichiers ou des dossiers dont le chemin utilise le modèle d’URL app:. Pour des raisons de sécurité, il n’est pas conseillé de modifier le contenu du répertoire de l’application ; ce contenu est bloqué sur les systèmes d’exploitation de certaines plates-formes. Pour stocker des données spécifiques à l’application, pensez à utiliser son répertoire de stockage (File.applicationStorageDirectory). Si vous souhaitez qu’une partie du contenu du répertoire de stockage de l’application ait accès aux fonctionnalités de l’application (les API AIR), vous pouvez exposer cette fonctionnalité à l’aide d’un pont de sandbox.

La propriété applicationDirectory permet de référencer le répertoire de l’application de façon à ce qu’il fonctionne sur toutes les plateformes. Si vous définissez un objet File pour référencer le répertoire de l’application à l’aide de la propriété nativePath ou url, il ne fonctionne que sur la plateforme pour laquelle ce chemin est valide.

Sur Android, la propriété nativePath, d’un objet File pointant vers le répertoire de l’application est une chaîne vide. Utilisez la propriété url pour accéder aux fichiers d’application.

applicationStorageDirectory
applicationStorageDirectory Répertoire de stockage privé de l’application.flash.filesystem:File Répertoire de stockage privé de l’application.

Chaque application AIR possède un répertoire de stockage permanent et unique créé lors du premier accès à File.applicationStorageDirectory. Ce répertoire est très pratique pour stocker les données propres à l’application.

Lors de la désinstallation d’une application AIR, le programme de désinstallation peut supprimer le répertoire de stockage de l’application et ses fichiers ou les conserver, selon la plate-forme.

La propriété url de cet objet utilise le modèle d’URL app-storage (pas le modèle d’URL file). Cela signifie que la chaîne url est spécifiée en commençant par "app-storage:" (pas par "file:"). De même, si vous créez un objet File relatif au répertoire File.applicationStoreDirectory (en utilisant la méthode resolvePath()), l’url de l’objet File utilise également le modèle d’URL app-storage (comme dans l’exemple).

La propriété applicationStorageDirectory permet de référencer le répertoire de stockage de l’application de façon à ce qu’il fonctionne sur toutes les plateformes. Si vous définissez un objet File pour référencer le répertoire de stockage de l’application à l’aide de la propriété nativePath ou url, il ne fonctionne que sur la plateforme pour laquelle ce chemin est valide.

Le code suivant crée un objet File qui pointe vers le sous-répertoire « images » du répertoire de stockage de l’application. import flash.filesystem.File; var tempFiles:File = File.applicationStorageDirectory; tempFiles = tempFiles.resolvePath("images/"); trace(tempFiles.url); // app-storage:/images
desktopDirectory Répertoire Bureau de l’utilisateur.flash.filesystem:File Répertoire Bureau de l’utilisateur.

La propriété desktopDirectory permet de référencer le répertoire Bureau de façon à ce qu’il fonctionne sur toutes les plateformes. Si vous définissez un objet File pour référencer le répertoire Bureau à l’aide de la propriété nativePath ou url, il ne fonctionne que sur la plateforme pour laquelle ce chemin est valide.

Si un système d’exploitation ne prend pas en charge un répertoire du bureau, un répertoire du système de fichiers est utilisé à la place.

Les périphériques AIR pour TV n’ont aucun concept d’un répertoire du bureau de l’utilisateur. Par conséquent, la propriété desktopDirectory fait référence au même emplacement de répertoire que la propriété File.userDirectory . Le répertoire de l’utilisateur est propre à l’application.

Le code suivant fournit la liste des fichiers et des répertoires contenus dans le répertoire Bureau de l’utilisateur. import flash.filesystem.File; var desktop:File = File.desktopDirectory; var files:Array = desktop.getDirectoryListing(); for (var i:uint = 0; i < files.length; i++) { trace(files[i].nativePath); }
documentsDirectory Répertoire documents de l’utilisateur.flash.filesystem:File Répertoire documents de l’utilisateur.

Sous Windows, il s’agit du répertoire Mes documents (par exemple C:\Documents and Settings\nomUtilisateur\Mes documents). Sous Mac OS, l’emplacement par défaut est le suivant : /Utilisateurs/nomUtilisateur/Documents. Sous Linux, l’emplacement par défaut est le suivant : /home/nomUtilisateur/Documents (système anglais) et la propriété tient compte du paramètre xdg-user-dirs.

La propriété documentsDirectory permet de référencer le répertoire documents de façon à ce qu’il fonctionne sur toutes les plateformes. Si vous définissez un objet File pour référencer le répertoire documents à l’aide de la propriété nativePath ou url, il ne fonctionne que sur la plateforme pour laquelle ce chemin est valide.

Si un système d’exploitation ne prend pas en charge un répertoire de documents, un répertoire du système de fichiers est utilisé à la place.

Les périphériques AIR pour TV n’ont aucun concept d’un répertoire de documents de l’utilisateur. Par conséquent, la propriété documentsDirectory fait référence au même emplacement de répertoire que la propriété File.userDirectory. Le répertoire de l’utilisateur est propre à l’application.

Le code suivant utilise la propriété File.documentsDirectory et la méthode File.createDirectory() pour vérifier l’existence du répertoire « AIR Test » dans le répertoire documents de l’utilisateur. import flash.filesystem.File; var directory:File = File.documentsDirectory; directory = directory.resolvePath("AIR Test"); File.createDirectory(directory); trace(directory.exists); // true
downloaded Indique si le fichier ou le répertoire référencé a été téléchargé (depuis Internet) ou non.Boolean 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

Sur les systèmes qui ne marquent pas les fichiers comme téléchargés, tels que Linux, cette propriété n’est pas utile (et est définie sur false).

openWithDefaultApplication()
exists Indique si le fichier ou le répertoire référencé existe.Boolean Indique si le fichier ou le répertoire référencé existe. La valeur est true si l’objet File pointe vers un fichier ou répertoire existant et false dans le cas contraire. Le code suivant crée un fichier temporaire, puis le supprime et utilise la propriété File.exists pour vérifier l’existence du fichier. import flash.filesystem.*; var temp:File = File.createTempFile(); trace(temp.exists); // true temp.deleteFile(); trace(temp.exists); // false icon Objet Icon contenant les icônes définies pour le fichier.flash.desktop:Icon Objet Icon contenant les icônes définies pour le fichier. Un objet Icon est un tableau d’objets BitmapData correspondant aux différents états des icônes. Sous Linux, l’objet Icon ne contient aucune icône. Sur Android, la propriété icon est null. Le code suivant illustre la recherche de l’image du tableau icon dont la hauteur est la plus grande, et définit un objet Bitmap sur cette image. import flash.filesystem.File; import flash.display.*; var directory:File = File.documentsDirectory; var bitmaps:Array = directory.icon.bitmaps; var bmpData:BitmapData = new BitmapData(1, 1); for (var i:uint = 0; i < bitmaps.length; i++) { if (bitmaps[i].height > bmpData.height) { bmpData = directory.icon.bitmaps[i]; } } var iconBmp:Bitmap = new Bitmap(bmpData); Vous pouvez ajouter cet objet Bitmap en tant qu’enfant d’un conteneur d’objet d’affichage, par exemple un objet Sprite ou un objet Flex UIComponent. isDirectory Indique si la référence pointe vers un répertoire.Boolean Indique si la référence pointe vers un répertoire. La valeur est true si l’objet File pointe vers un répertoire ; false dans le cas contraire. Le code suivant crée un tableau d’objets File pointant vers les fichiers et les répertoires du dossier utilisateur, puis utilise la propriété isDirectory pour répertorier uniquement les objets File pointant vers des répertoires (pas vers des fichiers). import flash.filesystem.*; var userDirFiles:Array = File.userDirectory.getDirectoryListing(); for (var i:uint = 0; i < userDirFiles.length; i++) { if (userDirFiles[i].isDirectory) { trace(userDirFiles[i].nativePath); } } isHidden Indique si le fichier ou le répertoire référencé est « masqué ». La valeur est true si le fichier ou le répertoire référencé est masqué, et false dans le cas contraire.Boolean Indique si le fichier ou le répertoire référencé est « masqué ». La valeur est true si le fichier ou le répertoire référencé est masqué, et false dans le cas contraire. Le code suivant crée un tableau d’objets File pointant vers les fichiers et répertoires du dossier utilisateur, puis utilise la propriété isHidden pour répertorier les fichiers et les répertoires masqués. import flash.filesystem.*; var userDirFiles:Array = File.userDirectory.getDirectoryListing(); for (var i:uint = 0; i < userDirFiles.length; i++) { if (userDirFiles[i].isHidden) { trace(userDirFiles[i].nativePath); } } isPackage Indique si le répertoire référencé est un package.Boolean Indique si le répertoire référencé est un package.

La valeur est true si le fichier ou le répertoire est un package, et false dans le cas contraire. Notez que la classe File ne permet pas de créer des packages directement.

  • Sous Mac OS, les répertoires peuvent être désignés comme des packages et s’affichent dans le Finder sous la forme d’un seul fichier plutôt que sous la forme d’un répertoire. Cette propriété est définie sur true si le répertoire référencé est un package, et sur false si le fichier n’est pas un répertoire, n’existe pas ou n’est pas un package.
  • Sous les autres systèmes d’exploitation, cette propriété est toujours définie sur false.
isSymbolicLink Indique si la référence est un lien symbolique.Boolean Indique si la référence est un lien symbolique.

La valeur est true si l’objet File pointe vers un lien symbolique, et false dans le cas contraire. Notez que la classe File ne permet pas de créer des liens symboliques directement.

Les liens symboliques permettent à un fichier de pointer vers un autre fichier ou un répertoire du disque. Bien que similaires, les liens symboliques ne correspondent pas aux alias de Mac OS ni aux raccourcis de Windows. Un alias ou un raccourci est toujours signalé sous forme de fichier (plutôt que sous forme de répertoire) et la lecture ou l’écriture dans un alias ou un raccourci n’affecte jamais le fichier ou le répertoire original cible. En revanche, un lien symbolique se comporte généralement comme le fichier ou le répertoire vers lequel il pointe. Il peut être signalé comme un fichier ou un répertoire, et la lecture ou l’écriture dans un lien symbolique affecte le fichier ou le répertoire vers lequel il pointe, pas le lien symbolique lui-même. Notez toutefois que la suppression d’un lien symbolique supprime le lien mais pas la cible du lien.

Mac® OS®, Linux et Windows® Vista® prennent en charge les liens symboliques. De plus, sous Windows, la propriété isSymbolicLink d’un objet File référençant un point de jonction (utilisé dans le système de fichiers NTFS) est définie sur true.

lineEnding Suite de caractères de fin de ligne utilisée par le système d’exploitation hôte.String Suite de caractères de fin de ligne utilisée par le système d’exploitation hôte.

Sous Mac OS et Linux, il s’agit du caractère de changement de ligne (code hexadécimal 0x0A). Sous Windows, il s’agit du caractère de retour chariot (code hexadécimal 0x0D) suivi du caractère de changement de ligne (code hexadécimal 0x0A).

Le code suivant écrit une chaîne (str) dans un fichier texte et utilise la propriété statique File.lineEnding pour remplacer toutes les occurrences du caractère de nouvelle ligne (représenté dans le code par l’expression régulière /\n/g) par le caractère de fin de ligne favori du système d’exploitation hôte. import flash.filesystem.*; var str:String = "Hello\n" + "World\n"; str = str.replace(/\n/g, File.lineEnding); var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeUTF(str); fileStream.close();
nativePath Chemin complet dans la représentation du système d’exploitation hôte.StringLa syntaxe du chemin n’est pas valide. ArgumentErrorArgumentErrorL’appelant n’est pas dans le sandbox de sécurité de l’application. SecurityErrorSecurityError Chemin complet dans la représentation du système d’exploitation hôte. Sous Mac OS et Linux, la barre oblique (/) est utilisée comme séparateur de chemin. Toutefois, sous Windows, vous pouvez définir la propriété nativePath en utilisant le caractère barre oblique ou barre oblique inverse (\) comme séparateur de chemin, et AIR remplace automatiquement la barre oblique par le caractère barre oblique inverse approprié.

Avant d’écrire du code en vue de définir la propriété nativePath directement, tenez compte du fait que cela peut impliquer l’utilisation de code spécifique à une application. Par exemple, un chemin natif tel que "C:\\Documents and Settings\\bob\\Desktop" n’est valable que sous Windows. Il est donc préférable d’utiliser les propriétés statiques suivantes, qui représentent les répertoires les plus fréquemment utilisés et qui sont valables sur toutes les plateformes :

  • File.applicationDirectory
  • File.applicationStorageDirectory
  • File.desktopDirectory
  • File.documentsDirectory
  • File.userDirectory

Vous pouvez utiliser la méthode resolvePath() pour obtenir un chemin relatif à ces répertoires.

Certaines API de Flex, telles que la propriété source de la classe SWFLoader utilisent une URL (la propriété url d’un objet File), et non un chemin natif (la propriété nativePath).

Le code suivant montre la différence entre les propriétés nativePath et url d’un objet File. Les commentaires montrent les résultats sur un ordinateur Windows. import flash.filesystem.File; var docs:File = File.documentsDirectory; trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
parent Répertoire qui contient le fichier ou le répertoire référencé par cet objet File.flash.filesystem:File Répertoire qui contient le fichier ou le répertoire référencé par cet objet File.

Si le fichier ou le répertoire n’existe pas, la propriété parent renvoie toujours l’objet File pointant vers le répertoire conteneur, même si ce dernier n’existe pas.

Cette propriété est identique à la valeur renvoyée par resolvePath("..") si ce n’est que le parent d’un répertoire racine est null.

Le code suivant utilise la propriété parent pour indiquer le répertoire contenant un fichier temporaire. import flash.filesystem.File; var tempFile:File = File.createTempDirectory(); trace(tempFile.parent.nativePath); tempFile.deleteFile();
separator Caractère de séparation des composants du chemin du système d’exploitation hôte.String Caractère de séparation des composants du chemin du système d’exploitation hôte.

Sous Mac OS et Linux, il s’agit de la barre oblique (/). Sous Windows, il s’agit du caractère barre oblique inversée (\).

Remarque : lorsque vous utilisez le caractère barre oblique inversée dans une chaîne littérale, pensez à taper le caractère à deux reprises (comme dans "directory\\file.ext"). Chaque paire de barres obliques inversées insérée dans une chaîne représentent une seule barre oblique inversée dans la chaîne.

Le code suivant utilise la méthode getRelativePath() pour obtenir le chemin relatif entre un répertoire et un fichier. Le code utilise ensuite la propriété statique File.separator pour remplacer les caractères barre oblique (/) du chemin par le caractère de séparation utilisé par le système d’exploitation, c’est-à-dire par une barre oblique inversée (\) sous Windows et une barre oblique dans les autres systèmes d’exploitation. import flash.filesystem.File; var directory:File = File.documentsDirectory.resolvePath("Apollo Test"); var file:File = File.documentsDirectory.resolvePath("Apollo Test/employees/bob/test.txt"); var relativePath:String = directory.getRelativePath(file); // employees/bob/test.txt relativePath = relativePath.replace(/\//g, File.separator); trace(relativePath); Dans cet exemple, la méthode replace() utilise une expression régulière /\//g pour la correspondance de tous les caractères barre oblique.
spaceAvailable Espace disponible pour cet emplacement File, en octets.Number Espace disponible pour cet emplacement File, en octets.

Si l’objet File fait référence à un répertoire, spaceAvailable désigne l’espace pouvant être utilisé par des fichiers dans le répertoire. Si l’objet File fait référence à un fichier, spaceAvailable désigne l’espace que le fichier peut occuper. Si l’emplacement du fichier n’existe pas, spaceAvailable est défini sur 0. Si l’objet File fait référence à un lien symbolique, spaceAvailable désigne l’espace disponible à l’emplacement vers lequel pointe le lien symbolique.

En général, l’espace disponible pour un répertoire ou un fichier correspond à l’espace disponible sur le volume contenant le répertoire ou le fichier. Toutefois, l’espace disponible peut tenir compte de quotas et de limites par répertoire.

L’ajout d’un fichier ou d’un répertoire dans un volume nécessite généralement plus d’espace que la taille réelle du fichier ou du contenu du répertoire. Par exemple, le système d’exploitation peut requérir davantage d’espace pour stocker les informations d’index. De même, les secteurs du disque requis peuvent utiliser un espace supplémentaire. Enfin, l’espace disponible change de façon dynamique. Vous ne pouvez donc pas envisager d’affecter tout l’espace signalé au stockage des fichiers.

systemCharset Codage par défaut utilisé par le système d’exploitation hôte.String Codage par défaut utilisé par le système d’exploitation hôte.

Les valeurs possibles comprennent "windows-1252" "shift-jis", "cn-gb", "iso-8859-1", etc. Pour obtenir la liste complète, voir la section Jeux de caractères pris en charge.

Vous pouvez utiliser cette valeur lorsque vous utilisez les méthodes readMultiByte() et writeMultiByte() de la classe FileStream.

Le code suivant ouvre un fichier (le fichier test.txt situé dans le sous-répertoire AIR Test du répertoire documents de l’utilisateur) et utilise la propriété File.systemCharset comme paramètre charSet d’un appel à la méthode readMultiByte() d’un objet FileStream. import flash.filesystem.File; var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.READ); var str:String = fileStream.readMultiByte(file.size, File.systemCharset); trace(str);
FileStream.readMultiByte()FileStream.writeMultiByte()
url URL de ce chemin de fichier.StringLa syntaxe de l’URL n’est pas valide. ArgumentErrorArgumentErrorL’appelant n’est pas dans le sandbox de sécurité de l’application. SecurityErrorSecurityError URL de ce chemin de fichier.

S’il s’agit d’une référence à un chemin dans le répertoire de stockage de l’application, le modèle d’URL est "app-storage" ; s’il s’agit d’une référence à un chemin dans le répertoire de l’application, le modèle d’URL est "app" ; autrement le modèle est "file".

Vous pouvez utiliser des caractères d’espace vide (au lieu de "%20") lorsque vous affectez une valeur à la propriété url ; AIR encode automatiquement les chaînes (par exemple conversion des espaces en "%20").

Le code suivant montre la différence entre les propriétés nativePath et url d’un objet File. Les commentaires montrent les résultats sur un ordinateur Windows. import flash.filesystem.File; var docs:File = File.documentsDirectory; trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
nativePathFonction globale decodeURI()Fonction globale decodeURIComponent()Fonction globale decodeURI()Fonction globale decodeURIComponent()
userDirectory Répertoire de l’utilisateur.flash.filesystem:File Répertoire de l’utilisateur.

Sous Windows, il s’agit du parent du répertoire Mes documents (par exemple C:\Documents and Settings\nomUtilisateur). Sous Mac OS, il s’agit de /Utilisateurs/nomUtilisateur. Sous Linux, il s’agit de /home/nomUtilisateur.

La propriété userDirectory permet de référencer le répertoire de l’utilisateur de façon à ce qu’il fonctionne sur toutes les plateformes. Si vous définissez la propriété nativePath ou url d’un objet File directement, elle ne fonctionne que sur la plateforme pour laquelle ce chemin est valide.

Si un système d’exploitation ne prend pas en charge un répertoire de l’utilisateur, un répertoire du système de fichiers est utilisé à la place.

Sur les périphériques AIR pour TV, la propriété userDirectory fait référence à un répertoire de l’utilisateur propre à l’application.

Le code suivant donne la liste des fichiers et répertoires contenus au niveau racine du répertoire de l’utilisateur : import flash.filesystem.File; var files:Array = File.userDirectory.listDirectory(); for (var i:uint = 0; i < files.length; i++) { trace(files[i].nativePath); }
StorageVolume Un objet StorageVolume contient des propriétés qui définissent un volume de stockage de masse.Object Un objet StorageVolume contient des propriétés qui définissent un volume de stockage de masse. Cette valeur s’utilise de deux manières :
  • La propriété storageVolume d’un objet StorageVolumeChangeEvent représente un objet StorageVolume. Cet objet représente le volume de stockage qui a été monté ou démonté.
  • La méthode StorageVolumeInfo.storageVolumeInfo.getStorageVolumes() renvoie un vecteur d’objets StorageVolume. Chacun de ces objets StorageVolume représente un volume de stockage monté.
Le code suivant répertorie les propriétés de chaque volume de stockage monté : package { import flash.display.Sprite; import flash.filesystem.StorageVolume; import flash.filesystem.StorageVolumeInfo; public class StorageVolumeExample extends Sprite { public function StorageVolumeExample() { var volumes:Vector.<StorageVolume> = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { var volume:StorageVolume = volumes[i]; trace("nativePath:", volume.rootDirectory.nativePath); trace("fileSystemType:", volume.fileSystemType); trace("isRemovable:", volume.isRemovable); trace("isWritable:", volume.isWritable); trace("drive:", volume.drive); trace("name:", volume.name); trace("________________________________________________________"); } } } } Le code suivant répertorie les propriétés de chaque volume de stockage monté ou démonté. Notez que la propriété storageVolume de l’objet StorageVolumeChangeEvent est uniquement définie pour l’événement storageVolumeMount ; sa valeur est null pour l’événement storageVolumeUnmount : package { import flash.display.Sprite; import flash.events.StorageVolumeChangeEvent; import flash.filesystem.StorageVolume; import flash.filesystem.StorageVolumeInfo; public class StorageVolumeChangeEventExample extends Sprite { public function StorageVolumeChangeEventExample() { StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, mountEventHandler); StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, unmountEventHandler); } public function mountEventHandler(event:StorageVolumeChangeEvent):void { var volume:StorageVolume = event.storageVolume; trace("VOLUME MOUNTED:"); trace("nativePath:", event.rootDirectory.nativePath); trace("fileSystemType:", volume.fileSystemType); trace("isRemovable:", volume.isRemovable); trace("isWritable:", volume.isWritable); trace("drive:", volume.drive); trace("name:", volume.name); trace(); } public function unmountEventHandler(event:StorageVolumeChangeEvent):void { trace("VOLUME UNMOUNTED:"); trace("nativePath:", event.rootDirectory.nativePath); trace(); } } }
flash.filesystem.StorageVolumeInfo.getStorageVolumes()flash.events.StorageVolumeChangeEvent.storageVolumeStorageVolume Fonction du constructeur.rootDirPathflash.filesystem:FilenameStringwritableBooleanremovableBooleanfileSysTypeStringdriveString Fonction du constructeur. En règle générale, vous n’appelez pas la fonction de ce constructeur directement (pour créer de nouveaux objets StorageVolume). Au lieu de cela, vous référencez les objets StorageVolume en accédant à la propriété storageVolume d’un objet StorageVolumeChangeEvent ou en appelant StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(). drive Lettre de lecteur d’un volume sous Windows. String Lettre de lecteur d’un volume sous Windows. Sur d’autres plates-formes, cette propriété est définie sur null. fileSystemType Type de système de fichiers sur le volume de stockage (tel que "FAT", "NTFS", "HFS" ou "UFS").String Type de système de fichiers sur le volume de stockage (tel que "FAT", "NTFS", "HFS"ou "UFS"). Le code suivant indique le chemin d’accès natif correspondant au répertoire racine, ainsi que le type de système de fichiers de chaque volume de stockage monté : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath, "(" + volumes[i].fileSystemType + ")"); } isRemovable Indique si le système d’exploitation considère que le volume de stockage peut être retiré (true) ou pas (false).Boolean Indique si le système d’exploitation considère que le volume de stockage peut être retiré (true) ou pas (false).

Le tableau suivant répertorie les valeurs de la propriété StorageVolume.isRemovable pour divers types de périphériques :

Type de périphériqueMac OSWindowsLinuxCD/DVD (intégré)truetruetrueLecteur flash USBtruetruetrueDisque dur USBfalsefalsetrueDisque dur FireWirefalsefalsetrueVolume partagétruefalse- 1Lecteur de réseaufalsefalsefalseLecteur de carte de stockage (vide)- 2false- 2Lecteur de carte de stockage (avec carte SD/CF) truetruetrue

1 Linux ne possède pas de concept de volume partagé.

2 Sous Windows, un lecteur de carte vide est répertorié en tant que périphérique non amovible. Sous Mac OS et Linux, les lecteurs de carte vides ne sont pas répertoriés en tant que volumes de stockage.

Le code suivant génère une liste des volumes de stockage non amovibles, ainsi qu’une liste des volumes de stockage amovibles : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); trace("Non-removeable volumes:"); for (var i:int = 0; i < volumes.length; i++) { if (!volumes[i].isRemovable) { trace(volumes[i].rootDirectory.nativePath); } } trace("\nRemoveable volumes:"); for (i = 0; i < volumes.length; i++) { if (volumes[i].isRemovable) { trace(volumes[i].rootDirectory.nativePath); } }
isWritable Indique s’il est possible d’écrire sur un volume (true) ou pas (false).Boolean Indique s’il est possible d’écrire sur un volume (true) ou pas (false).

Remarque : vous pouvez déterminer la quantité d’espace disponible sur un volume en appelant la propriété rootDirectory.spaceAvailble de l’objet StorageVolume.

Le code suivant génère une liste des volumes de stockage accessibles en écriture et indique l’espace disponible sur chacun d’eux : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { if(volumes[i].isWritable) { trace(volumes[i].rootDirectory.nativePath, volumes[i].rootDirectory.spaceAvailable); } }
flash.fileSystem.File.spaceAvailable
name Nom du volume.String Nom du volume. Si aucun nom n’est défini, cette propriété est définie sur null. Le code suivant indique le chemin d’accès natif correspondant au répertoire racine, ainsi que le nom du système de fichiers de chaque volume de stockage monté : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { var name:String = new String(); if (volumes[i].name) { name = "(" + volumes[i].name + ")"; } trace(volumes[i].rootDirectory.nativePath, name); } rootDirectory Objet File correspondant au répertoire racine du volume.flash.filesystem:File Objet File correspondant au répertoire racine du volume. Le code suivant indique le chemin d’accès natif correspondant au répertoire racine de chaque volume de stockage monté : var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>; volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes(); for (var i:int = 0; i < volumes.length; i++) { trace(volumes[i].rootDirectory.nativePath); }