Utilisation des objets File dans AIRAdobe AIR 1.0 et ultérieur Un objet File est un pointeur vers un fichier ou un répertoire du système de fichiers. La classe File étend la classe FileReference. La classe FileReference, qui est disponible dans Adobe® Flash® Player et 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é. Présentation de la classe FileLa classe File permet d’effectuer les opérations suivantes :
Une fois qu’un objet File pointe vers un chemin de fichier, vous pouvez l’utiliser pour lire et écrire des données de fichier, à l’aide de la classe FileStream. Un objet File peut pointer vers le chemin d’un fichier ou d’un répertoire qui n’existe pas encore. Vous pouvez utiliser un tel objet File pour créer un fichier ou un répertoire. Chemin des objets FileTout objet File possède deux propriétés qui définissent son chemin :
La classe File comprend des propriétés statiques de pointage vers les répertoires standard sous Mac, Windows et Linux. Parmi ces propriétés figurent :
Remarque : si une plate-forme ne définit pas d’emplacement standard pour les répertoires de poste de travail, de documents ou d’utilisateur, File.documentsDirectory, File.desktopDirectory et File.userDirectory peuvent pointer vers le même répertoire.
La valeur de ces propriétés varie selon le système d’exploitation. Par exemple, le chemin natif vers le répertoire du poste de travail de l’utilisateur est différent sur Mac et Windows. La propriété File.desktopDirectory pointe néanmoins vers un chemin de répertoire approprié sur chaque plate-forme. 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 et répertoires 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"); Bien que la classe File vous permette de pointer vers un chemin de fichier déterminé, les applications risquent alors de ne pas fonctionner sur toutes les plates-formes. Par exemple, le chemin C:\Documents and Settings\joe\ ne fonctionne que sous Windows. C’est pourquoi il est préférable d’utiliser les propriétés statiques de la classe File, telles que File.documentsDirectory.
Le chemin natif réel de ces répertoires varie selon le système d’exploitation et la configuration de l’ordinateur. Les chemins indiqués dans ce tableau représentent des exemples typiques. Pointez toujours vers ces répertoires par le biais des propriétés statiques appropriées de la classe File, afin que l’application fonctionne correctement quelle que soit la plate-forme. Dans une application AIR réelle, les valeurs des variables IDApplication et NomFichier indiquées dans le tableau sont extraites du descripteur d’application. Si vous stipulez un ID d’éditeur dans le descripteur d’application, il est ajouté à la fin de l’ID d’application dans ces chemins. La valeur de NomUtilisateur correspond au nom du compte de l’utilisateur qui installe l’application. Vue arborescente associée aux applications AIR pour TVPour sécuriser les systèmes de fichiers des périphériques AIR pour TV, une application AIR ne peut accéder qu’à un ensemble restreint de répertoires. AIR pour TV interdit à l’application d’accéder à tout autre répertoire. En outre, AIR pour TV isole les données propres à chaque utilisateur pour chaque application AIR. L’application AIR fait appel à des noms de répertoire réservés à ActionScript 3.0. Ces noms ne représentent pas des répertoires réels du périphérique. AIR pour TV mappe ces noms de répertoire ActionScript 3.0 sur des répertoires de périphérique réels. Ce mappage permet de protéger les applications AIR pour TV contre tout accès malveillant ou accidentel à des fichiers locaux qui ne leur appartiennent pas. Les noms de répertoire ActionScript 3.0 sont les suivants :
Si une application tente d’accéder à un répertoire interdit, le moteur d’exécution renvoie une exception que peut capturer le code ActionScript. Le tableau ci-dessous indique la valeur File.nativePath des diverses propriétés et méthodes de la classe File. Les valeurs reflètent la vue restreinte du système de fichiers du périphérique dont dispose l’application.
Tenez par ailleurs compte du comportement des méthodes suivantes sur les périphériques AIR pour TV :
Pointage d’un objet File vers un répertoireVous disposez de plusieurs méthodes pour configurer un objet File afin qu’il pointe vers un répertoire. Pointage vers le répertoire d’accueil de l’utilisateurVous pouvez pointer un objet File vers le répertoire d’accueil de l’utilisateur. Le code suivant configure l’objet File afin qu’il pointe vers le sous-répertoire AIR Test du répertoire d’accueil : var file:File = File.userDirectory.resolvePath("AIR Test"); Pointage vers le répertoire de documents de l’utilisateurVous pouvez pointer un objet File vers le répertoire de documents de l’utilisateur. Le code suivant configure un objet File afin qu’il pointe vers le sous-répertoire AIR Test du répertoire de documents : var file:File = File.documentsDirectory.resolvePath("AIR Test"); Pointage vers le répertoire du poste de travailVous pouvez pointer un objet File vers le poste de travail. Le code suivant configure un objet File afin qu’il pointe vers le sous-répertoire AIR Test du poste de travail : var file:File = File.desktopDirectory.resolvePath("AIR Test"); Pointage vers le répertoire de stockage d’une applicationVous pouvez pointer un objet File vers le répertoire de stockage d’une application. A toute application AIR est associé un chemin unique qui définit son répertoire de stockage. Ce répertoire est spécifique à chaque application et utilisateur. Vous pouvez y stocker des données spécifiques à l’application et à l’utilisateur, notamment des données utilisateur ou des fichiers de préférences. Par exemple, le code suivant pointe un objet File vers un fichier de préférences, prefs.xml, qui réside dans le répertoire de stockage de l’application : var file:File = File.applicationStorageDirectory; file = file.resolvePath("prefs.xml"); L’emplacement du répertoire de stockage de l’application est généralement déterminé par le nom d’utilisateur et l’ID d’application. Les emplacements suivants au sein du système de fichiers sont indiqués ci-après à des fins de débogage d’application. Utilisez toujours la propriété File.applicationStorage ou le modèle d’URI app-storage: pour résoudre les fichiers dans ce répertoire :
Remarque : si une application possède un identifiant d’éditeur, ce dernier figure également dans le chemin du répertoire de stockage de l’application.
L’URL (et la propriété url) d’un objet File créé à l’aide de File.applicationStorageDirectory utilise le modèle d’URL app-storage (voir Modèles d’URL AIR pris en charge), comme l’illustre l’exemple suivant : var dir:File = File.applicationStorageDirectory; dir = dir.resolvePath("preferences"); trace(dir.url); // app-storage:/preferences Pointage vers le répertoire de l’applicationVous pouvez pointer un objet File vers le répertoire dans lequel une application est installée, ou répertoire d’application. Vous pouvez référencer ce répertoire à l’aide de la propriété File.applicationDirectory. Il permet d’examiner le fichier descripteur d’application ou d’autres ressources installées avec l’application. Par exemple, le code suivant pointe un objet File vers le répertoire images du répertoire d’application : var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); L’URL (et la propriété url) d’un objet File créé à l’aide de File.applicationDirectory utilise le modèle d’URL app (voir Modèles d’URL AIR pris en charge), comme l’illustre l’exemple suivant : var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); trace(dir.url); // app:/images Remarque : sur Android, il est impossible d’accéder aux fichiers du package d’application par le biais de nativePath. La propriété nativePath est une chaîne vide. Accédez toujours aux fichiers que contient le répertoire de l’application par le biais de l’URL, plutôt que d’un chemin natif.
Pointage vers la racine du système de fichiersLa méthode File.getRootDirectories() répertorie tous les volumes racine, tels que C: et les volumes montés, sur un ordinateur Windows. Sous Mac et Linux, cette méthode renvoie le répertoire racine unique de l’ordinateur (le répertoire « / »). La méthode StorageVolumeInfo.getStorageVolumes() propose des informations plus détaillées sur les volumes de stockage montés (voir Utilisation des volumes de stockage). Remarque : il est impossible d’accéder en lecture à la racine du système de fichiers sur Android. La méthode renvoie un objet File qui pointe vers le répertoire par le biais du chemin natif « / », mais les propriétés de cet objet n’ont pas de valeur précise. Par exemple, spaceAvailable correspond toujours à 0.
Pointage vers un répertoire expliciteVous pouvez pointer l’objet File vers un répertoire explicite en définissant sa propriété nativePath, comme l’illustre l’exemple ci-dessous (sous Windows) : var file:File = new File(); file.nativePath = "C:\\AIR Test"; Important : utiliser cette technique pour pointer vers un chemin explicite risque de générer un code qui ne fonctionne pas sur toutes les plates-formes. Ainsi, l’exemple précédent ne fonctionne que sous Windows. Les propriétés statiques de l’objet File, telles que File.applicationStorageDirectory, permettent de localiser un répertoire qui fonctionne sur toutes les plates-formes. Utilisez ensuite la méthode resolvePath() (voir la section suivante) pour accéder à un chemin relatif. Navigation vers des chemins relatifsLa méthode resolvePath() permet d’obtenir un chemin relatif à un autre chemin donné. Par exemple, le code suivant configure un objet File afin qu’il pointe vers le sous-répertoire « AIR Test » du répertoire d’accueil de l’utilisateur : var file:File = File.userDirectory; file = file.resolvePath("AIR Test"); En outre, la propriété url d’un objet File permet de pointer celui-ci vers un répertoire basé sur une chaîne d’URL, comme illustré ci-dessous : var urlStr:String = "file:///C:/AIR Test/"; var file:File = new File() file.url = urlStr; Pour plus d’informations, voir la section Modification de chemins de fichier. Sélection d’un répertoire par l’utilisateurLa classe File comprend la méthode browseForDirectory(), qui présente une boîte de dialogue système dans laquelle l’utilisateur peut sélectionner un répertoire à affecter à l’objet. La méthode browseForDirectory() est asynchrone. Elle distribue un événement select si l’utilisateur sélectionne un répertoire et clique sur le bouton Ouvrir, ou un événement cancel si l’utilisateur clique sur le bouton Annuler. Par exemple, le code suivant permet à l’utilisateur de sélectionner un répertoire et renvoie le chemin de celui-ci une fois la sélection effectuée : var file:File = new File(); file.addEventListener(Event.SELECT, dirSelected); file.browseForDirectory("Select a directory"); function dirSelected(e:Event):void { trace(file.nativePath); } Remarque : sur Android, la méthode browseForDirectory() n’est pas prise en charge. Appeler cette méthode n’a pas d’effet et un événement d’annulation est immédiatement distribué. Pour autoriser les utilisateurs à sélectionner un répertoire, vous devez utiliser une boîte de dialogue personnalisée définie par l’application.
Pointage vers le répertoire d’appel de l’applicationVous pouvez déterminer l’emplacement du répertoire à partir duquel une application est appelée en consultant la propriété currentDirectory de l’objet InvokeEvent distribué lors de l’appel de l’application. Pour plus d’informations, voir la section Capture des arguments de ligne de commande. Pointage d’un objet File vers un fichierIl existe plusieurs manières de définir le fichier vers lequel pointe un objet File. Pointage vers un chemin de fichier expliciteImportant : pointer vers un chemin explicite risque de générer un code qui ne fonctionne pas sur toutes les plates-formes. Ainsi, le chemin C:/foo.txt ne fonctionne que sous Windows. Les propriétés statiques de l’objet File, telles que File.applicationStorageDirectory, permettent de localiser un répertoire qui fonctionne sur toutes les plates-formes. Utilisez ensuite la méthode resolvePath() (voir Modification de chemins de fichier) pour accéder à un chemin relatif. La propriété url d’un objet File permet de pointer celui-ci vers un fichier ou un répertoire basé sur une chaîne d’URL, comme illustré ci-dessous : var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File() file.url = urlStr; Vous pouvez aussi transmettre l’URL à la fonction constructeur File(), comme illustré ci-dessous : var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File(urlStr); La propriété url renvoie systématiquement la version URI de l’URL (les espaces sont remplacés par "%20, par exemple) : file.url = "file:///c:/AIR Test"; trace(file.url); // file:///c:/AIR%20Test Vous pouvez aussi utiliser la propriété nativePath d’un objet File pour définir un chemin explicite. Par exemple, le code suivant, exécuté sur un ordinateur Windows, définit un objet File sur le fichier test.txt du sous-répertoire AIR Test du lecteur C: : var file:File = new File(); file.nativePath = "C:/AIR Test/test.txt"; Vous pouvez aussi transmettre ce chemin à la fonction constructeur File(), comme illustré ci-dessous : var file:File = new File("C:/AIR Test/test.txt"); Utilisez la barre oblique (/) comme délimiteur de chemin avec la propriété nativePath. Sous Windows, vous pouvez également utiliser la barre oblique inverse ( \ ), mais l’application ne fonctionnera pas sur d’autres plateformes. Pour plus d’informations, voir la section Modification de chemins de fichier. Enumération des fichiers d’un répertoireLa méthode getDirectoryListing() d’un objet File permet d’obtenir un tableau d’objets File pointant vers les fichiers et sous-répertoires situés au niveau racine d’un répertoire. Pour plus d’informations, voir la section Enumération de répertoires. Sélection d’un fichier par l’utilisateurLa classe File comprend les méthodes suivantes, qui présentent une boîte de dialogue système dans laquelle l’utilisateur peut sélectionner un fichier à affecter à l’objet :
Toutes ces méthodes sont asynchrones. Les méthodes browseForOpen() et browseForSave() distribuent l’événement select lorsque l’utilisateur sélectionne un fichier (ou, dans le cas de browseForSave(), un chemin cible). Avec les méthodes browseForOpen() et browseForSave(), lors de la sélection, l’objet File pointe vers les fichiers sélectionnés. La méthode browseForOpenMultiple() distribue un événement selectMultiple lorsque l’utilisateur sélectionne des fichiers. L’événement selectMultiple est de type FileListEvent et possède une propriété files, c’est-à-dire un tableau d’objets File (pointant vers les fichiers sélectionnés). Par exemple, le code suivant présente une boîte de dialogue d’ouverture de fichier à l’utilisateur, lui permettant ainsi de sélectionner un fichier : var fileToOpen:File = File.documentsDirectory; selectTextFile(fileToOpen); function selectTextFile(root:File):void { var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml"); root.browseForOpen("Open", [txtFilter]); root.addEventListener(Event.SELECT, fileSelected); } function fileSelected(event:Event):void { trace(fileToOpen.nativePath); } Si une autre boîte de dialogue de navigation est ouverte dans l’application lors de l’appel d’une méthode browse, le moteur d’exécution renvoie une exception Error. Modification de chemins de fichierVous pouvez également modifier le chemin d’un objet File existant en appelant la méthode resolvePath() ou en intervenant sur la propriété nativePath ou url de l’objet, comme l’illustrent les exemples suivants (sous Windows) : var file1:File = File.documentsDirectory; file1 = file1.resolvePath("AIR Test"); trace(file1.nativePath); // C:\Documents and Settings\userName\My Documents\AIR Test var file2:File = File.documentsDirectory; file2 = file2.resolvePath(".."); trace(file2.nativePath); // C:\Documents and Settings\userName var file3:File = File.documentsDirectory; file3.nativePath += "/subdirectory"; trace(file3.nativePath); // C:\Documents and Settings\userName\My Documents\subdirectory var file4:File = new File(); file4.url = "file:///c:/AIR Test/test.txt"; trace(file4.nativePath); // C:\AIR Test\test.txt Si vous faites appel à la propriété nativePath, utilisez la barre oblique (/) comme caractère de séparation des répertoires. Sous Windows, vous pouvez également utiliser la barre oblique (\), mais évitez de le faire, sous peine de générer un code qui ne fonctionne pas sur toutes les plates-formes. Modèles d’URL AIR pris en chargeLorsque vous définissez la propriété url d’un objet File dans AIR, vous pouvez utiliser les modèles d’URL suivants :
Détermination du chemin relatif entre deux fichiersLa méthode getRelativePath() vous permet de déterminer le chemin relatif entre deux fichiers : var file1:File = File.documentsDirectory.resolvePath("AIR Test"); var file2:File = File.documentsDirectory file2 = file2.resolvePath("AIR Test/bob/test.txt"); trace(file1.getRelativePath(file2)); // bob/test.txt Le deuxième paramètre de la méthode getRelativePath(), useDotDot, permet le renvoi de la syntaxe .. dans les résultats, pour représenter les répertoires parent : var file1:File = File.documentsDirectory; file1 = file1.resolvePath("AIR Test"); var file2:File = File.documentsDirectory; file2 = file2.resolvePath("AIR Test/bob/test.txt"); var file3:File = File.documentsDirectory; file3 = file3.resolvePath("AIR Test/susan/test.txt"); trace(file2.getRelativePath(file1, true)); // ../.. trace(file3.getRelativePath(file2, true)); // ../../bob/test.txt Obtention des versions canoniques des noms de fichierLes noms de fichier et de chemin ne respectent pas la casse sous Windows et Mac OS. Dans l’exemple suivant, deux objets File pointent vers un même fichier : File.documentsDirectory.resolvePath("test.txt"); File.documentsDirectory.resolvePath("TeSt.TxT"); Les noms de document et de répertoire, en revanche, respectent la casse. Ainsi, l’exemple suivant considère comme acquis qu’il existe un dossier appelé AIR Test dans le répertoire documents : var file:File = File.documentsDirectory.resolvePath("AIR test"); trace(file.nativePath); // ... AIR test file.canonicalize(); trace(file.nativePath); // ... AIR Test La méthode canonicalize() convertit l’objet nativePath afin qu’il utilise la combinaison correcte de majuscules et de minuscules dans le nom de fichier ou de répertoire. 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). Vous pouvez aussi utiliser la méthode canonicalize() pour convertir les noms de fichier courts (« 8.3 ») en noms longs sous Windows, comme illustré ci-dessous : var path:File = new File(); path.nativePath = "C:\\AIR~1"; path.canonicalize(); trace(path.nativePath); // C:\AIR Test Utilisation de packages et de liens symboliquesDivers systèmes d’exploitation prennent en charge les fichiers de package et les fichiers de lien symbolique : Packages—Sous Mac OS, les répertoires peuvent être désignés comme packages et apparaissent dans le Finder sous la forme d’un fichier unique plutôt que d’un répertoire. Liens symboliques—Mac OS, Linux, et Windows Vista prennent en charge les liens symboliques. Les liens symboliques permettent à un fichier de pointer vers un autre fichier ou répertoire du disque. Bien que similaires aux alias, les liens symboliques diffèrent toutefois de ceux-ci. Un alias est systématiquement identifié en tant que fichier (plutôt que répertoire). La lecture d’un alias (ou raccourci) ou l’écriture dans celui-ci n’a aucune incidence sur le fichier ou le répertoire d’origine vers lequel il pointe. En revanche, un lien symbolique se comporte exactement comme le fichier ou le répertoire vers lequel il pointe. Il peut être identifié en tant que fichier ou répertoire. La lecture d’un lien symbolique ou l’écriture dans celui-ci affecte le fichier ou le répertoire vers lequel il pointe, pas le lien symbolique lui-même. 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. La classe File comprend les propriétés isPackage et isSymbolicLink qui permettent de vérifier si un objet File référence un package ou un lien symbolique. Le code suivant effectue une itération sur le répertoire du poste de travail de l’utilisateur, répertoriant les sous-répertoires qui ne sont pas des packages : var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (desktopNodes[i].isDirectory && !!desktopNodes[i].isPackage) { trace(desktopNodes[i].name); } } Le code suivant effectue une itération sur le répertoire du poste de travail de l’utilisateur, répertoriant les fichiers et répertoires qui ne sont pas des liens symboliques : var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (!desktopNodes[i].isSymbolicLink) { trace(desktopNodes[i].name); } } La méthode canonicalize() modifie le chemin d’un lien symbolique de sorte qu’il pointe vers le fichier ou le répertoire auquel le fichier ou le répertoire fait référence. Le code suivant effectue une itération sur le répertoire du poste de travail de l’utilisateur et identifie les chemins référencés par des fichiers qui sont des liens symboliques : var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (desktopNodes[i].isSymbolicLink) { var linkNode:File = desktopNodes[i] as File; linkNode.canonicalize(); trace(linkNode.nativePath); } } Détermination de l’espace disponible sur un volumeLa propriété spaceAvailable d’un objet File représente l’espace disponible utilisable, en octets, à l’emplacement de l’objet. Par exemple, le code suivant vérifie l’espace disponible dans le répertoire de stockage d’application : trace(File.applicationStorageDirectory.spaceAvailable); Si l’objet File référence un répertoire, la propriété spaceAvailable indique l’espace que peuvent utiliser les fichiers dans le répertoire. Si l’objet File référence un fichier, la propriété spaceAvailable indique l’espace maximal que peut occuper le fichier. Si l’emplacement de fichier n’existe pas, la propriété spaceAvailable est définie sur 0. Si l’objet File référence un lien symbolique, la propriété spaceAvailable est définie sur l’espace disponible à l’emplacement vers lequel pointe le lien symbolique. En règle générale, l’espace disponible pour un répertoire ou un fichier correspond à l’espace disponible sur le volume contenant ce répertoire ou fichier. Cependant, l’espace disponible peut tenir compte de quotas et de limites par répertoire. Lors de l’ajout d’un fichier ou d’un répertoire à un volume, l’espace nécessaire est généralement supérieur à la taille réelle du fichier ou à la taille du contenu du répertoire. Il se peut, par exemple, que le système d’exploitation requiert de l’espace supplémentaire pour stocker des informations d’index. Les secteurs de disque requis utilisent peut-être de l’espace en plus. En outre, l’espace disponible change dynamiquement. Il est donc impossible d’allouer tout l’espace indiqué au stockage des fichiers. Pour plus d’informations sur l’écriture dans le système de fichiers, voir la section Lecture et écriture de fichiers. La méthode StorageVolumeInfo.getStorageVolumes() propose des informations plus détaillées sur les volumes de stockage montés (voir Utilisation des volumes de stockage). Ouverture de fichiers dans l’application système définie par défautAIR 2 permet d’ouvrir un fichier dans l’application enregistrée à cet effet par le système d’exploitation. Une application AIR peut ainsi ouvrir un fichier DOC dans l’application enregistrée à cet effet. Faites appel à la méthode openWithDefaultApplication() d’un objet File pour ouvrir le fichier. Le code suivant ouvre par exemple le fichier test.doc sur le bureau de l’utilisateur dans l’application associée par défaut aux fichiers DOC : var file:File = File.deskopDirectory; file = file.resolvePath("test.doc"); file.openWithDefaultApplication(); Remarque : sous Linux, le type MIME du fichier, plutôt que son extension, détermine l’application associée par défaut à un fichier.
Le code suivant permet à l’utilisateur d’accéder à un fichier MP3 et de l’ouvrir dans l’application associée par défaut à la lecture des fichiers MP3 : 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(); } Il est impossible d’utiliser la méthode openWithDefaultApplication() pour les fichiers qui résident dans le répertoire de l’application. AIR vous interdit d’utiliser la méthode openWithDefaultApplication() pour ouvrir certains fichiers. Sous Windows, AIR vous interdit d’ouvrir les fichiers de type EXE ou BAT, par exemple. Sous Mac OS et Linux, AIR vous empêche d’ouvrir les fichiers qui s’exécutent dans une application spécifique (y compris Terminal et AppletLauncher sous Mac OS, ainsi que csh, bash ou ruby sous Linux). Tenter d’ouvrir l’un de ces fichiers par le biais de la méthode openWithDefaultApplication() renvoie une exception. Pour obtenir la liste complète des types de fichiers concernés, voir la rubrique du guide de référence du langage consacrée à la méthode File.openWithDefaultApplication(). Remarque : cette restriction ne s’applique pas à une application AIR installée par le biais d’un programme d’installation natif (une application de bureau étendu). Pour plus d’informations, voir Mise en package d’une application AIR sous forme de programme d’installation natif.
|
![]() |