AIR での File オブジェクトの操作Adobe AIR 1.0 およびそれ以降 File オブジェクトは、ファイルシステム内のファイルまたはディレクトリへのポインターです。 File クラスは FileReference クラスを拡張します。FileReference クラス(Adobe® Flash® Player および AIR で利用可能)はファイルへのポインターを表しますが、File クラスには、セキュリティ上の考慮事項により Flash Player(ブラウザーで実行している SWF ファイル)で公開されていない追加のプロパティおよびメソッドがあります。 File クラスについてFile クラスを使用して以下を実行できます。
File オブジェクトでファイルパスを参照すると、FileStream クラスでそれを使用してファイルデータの読み取りと書き込みができるようになります。 File オブジェクトでは、まだ存在しないファイルまたはディレクトリのパスを参照できます。このような File オブジェクトは、ファイルまたはディレクトリの作成に使用できます。 File オブジェクトのパス各 File オブジェクトには、そのオブジェクトのパスをそれぞれ定義する 2 つのプロパティがあります。
File クラスには、Mac OS、Windows および Linux の標準のディレクトリを参照するための静的プロパティが含まれます。これらのプロパティは次のとおりです。
注意: デスクトップディレクトリ、ドキュメントディレクトリ、またはユーザーディレクトリの標準の場所がプラットフォームで定義されていない場合、File.documentsDirectory、File.desktopDirectory、および File.userDirectory は同じディレクトリを参照できます。
これらのプロパティには、オペレーティングシステムに応じて異なる値が設定されています。例えば、Mac と Windows で設定されているユーザーのデスクトップディレクトリのネイティブパスはそれぞれ異なります。ただし、File.desktopDirectory プロパティは、すべてのプラットフォーム上の適切なディレクトリパスを参照します。複数のプラットフォームにわたって正常に機能するアプリケーションを作成するには、アプリケーションが使用する他のディレクトリやファイルを参照する土台としてこれらのプロパティを使用します。次に、resolvePath() メソッドを使用してパスの詳細を設定します。例えば、次のコードは、アプリケーション記憶領域ディレクトリの preferences.xml ファイルを参照しています。 var prefsFile:File = File.applicationStorageDirectory; prefsFile = prefsFile.resolvePath("preferences.xml"); File クラスでは特定のファイルパスを参照できますが、その場合、アプリケーションが複数のプラットフォームにわたって機能しなくなる可能性があります。例えば、C:¥Documents and Settings¥joe¥ というパスは、Windows 上でのみ機能します。このような理由から、File.documentsDirectory などの File クラスの静的プロパティを使用することをお勧めします。
これらのディレクトリの実際のネイティブパスは、オペレーティングシステムとコンピューターの構成によって異なります。この表には、典型的なパスの例を示しています。プラットフォーム上でアプリケーションを正しく動作させるには、これらのディレクトリを参照する適切な File クラスの静的プロパティを使用する必要があります。実際の AIR アプリケーションでは、この表に示す applicationID と filename の値はアプリケーション記述子から取得されます。アプリケーション記述子に発行者 ID を指定すると、その発行者 ID がこれらのパスのアプリケーション ID に追加されます。userName の値は、インストールを行うユーザーのアカウント名です。 テレビ用 AIR アプリケーションのディレクトリ表示テレビ用 AIR デバイスでのシステムファイルに対するセキュリティを確保するために、AIR アプリケーションは限られたディレクトリ以外にはアクセスできません。テレビ用 AIR では、アプリケーションが他のディレクトリにアクセスすることは禁止されています。さらに、テレビ用 AIR では、AIR アプリケーションごとに各ユーザー固有のデータが独立して管理されています。 AIR アプリケーションは、ActionScript 3.0 による使用のみを目的としたディレクトリ名を使用します。これらの名前はデバイス上の実際のディレクトリとは異なります。テレビ用 AIR はこれらの ActionScript 3.0 ディレクトリ名を実際のデバイスのディレクトリにマップします。このマップ処理によって、関係のないローカルファイルへの不当なアクセスや不注意なアクセスを行わないようテレビ用 AIR アプリケーションを保護します。 ActionScript 3.0 ディレクトリ名は次のとおりです。
アクセスを禁止されたディレクトリにアプリケーションがアクセスしようとすると、ActionScript コードでキャッチされる例外がスローされます。 様々な File プロパティおよびメソッド用の File.nativePath の値を次の表に示します。これらの値は、デバイスのファイルシステムを表す、AIR アプリケーション専用の値を示しています。
また、テレビ用 AIR デバイスでは、次のメソッドの動作について考慮してください。
File オブジェクトでのディレクトリの参照File オブジェクトでディレクトリの参照を設定するには、様々な方法があります。 ユーザーのホームディレクトリの参照File オブジェクトでユーザーのホームディレクトリを参照できます。次のコードでは、ホームディレクトリの AIR Test サブディレクトリを参照するように File オブジェクトを設定しています。 var file:File = File.userDirectory.resolvePath("AIR Test"); ユーザーのドキュメントディレクトリの参照File オブジェクトでユーザーのドキュメントディレクトリを参照できます。次のコードでは、ドキュメントディレクトリの AIR Test サブディレクトリを参照するように File オブジェクトを設定しています。 var file:File = File.documentsDirectory.resolvePath("AIR Test"); デスクトップディレクトリの参照File オブジェクトでデスクトップを参照できます。次のコードでは、デスクトップの AIR Test サブディレクトリを参照するように File オブジェクトを設定しています。 var file:File = File.desktopDirectory.resolvePath("AIR Test"); アプリケーション記憶領域ディレクトリの参照File オブジェクトでアプリケーション記憶領域ディレクトリを参照できます。AIR アプリケーションにはそれぞれ、アプリケーション記憶領域ディレクトリを定義する一意のパスが関連付けられています。このディレクトリは、アプリケーションおよびユーザーごとに一意に割り当てられます。このディレクトリは、ユーザーおよびアプリケーションに固有のデータ(ユーザーデータや環境設定ファイルなど)を格納するために使用できます。例えば、次のコードでは、アプリケーション記憶領域ディレクトリに格納されている prefs.xml という環境設定ファイルを File オブジェクトで参照します。 var file:File = File.applicationStorageDirectory; file = file.resolvePath("prefs.xml"); 通常、アプリケーション記憶領域ディレクトリの場所は、ユーザー名とアプリケーション ID に基づきます。次に示すファイルシステムの場所は、アプリケーションをデバッグする場合に使用できます。このディレクトリ内のファイルを解決するには、File.applicationStorage プロパティまたは app-storage: URI スキームを常に使用する必要があります。
注意: アプリケーションに発行者 ID がある場合、発行者 ID はアプリケーション記憶領域ディレクトリへのパスとしても使用されます。
File.applicationStorageDirectory で作成された File オブジェクトの URL (および url プロパティ)では、次のように app-storage URL スキーム(サポートされる AIR URL スキームを参照)が使用されます。 var dir:File = File.applicationStorageDirectory; dir = dir.resolvePath("preferences"); trace(dir.url); // app-storage:/preferences アプリケーションディレクトリの参照File オブジェクトで、アプリケーションがインストールされたディレクトリ(アプリケーションディレクトリ)を参照できます。このディレクトリを参照するには、File.applicationDirectory プロパティを使用します。このディレクトリでは、アプリケーション記述ファイルなど、アプリケーションと共にインストールされたリソースを確認できます。例えば、次のコードでは、アプリケーションディレクトリにある images というディレクトリを File オブジェクトで参照します。 var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); File.applicationDirectory で作成された File オブジェクトの URL (および url プロパティ)では、次のように app URL スキーム(サポートされる AIR URL スキームを参照)が使用されます。 var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); trace(dir.url); // app:/images 注意: Android では、nativePath を使用してアプリケーションパッケージ内のファイルにアクセスすることはできません。nativePath プロパティは空のストリングです。アプリケーションディレクトリ内のファイルにアクセスする場合は、ネイティブパスではなく必ず URL を使用してください。
ファイルシステムルートの参照File.getRootDirectories() メソッドは、すべてのルートボリュームの一覧を出力します。Windows コンピューターの場合は、C: およびマウントされたボリュームが含まれます。Mac OS および Linux の場合は、常にマシンの一意のルートディレクトリ(「/」ディレクトリ)が返されます。StorageVolumeInfo.getStorageVolumes() メソッドは、マウントされたストレージボリュームに関する詳細を提供します(ストレージボリュームの操作を参照)。 注意: Android では、ファイルシステムのルートを読み取ることはできません。ネイティブパス「/」を含むディレクトリを参照する File オブジェクトが返されますが、そのオブジェクトのプロパティには正確な値が指定されていません。例えば、spaceAvailable は常に 0 になります。
明示的なディレクトリの参照File オブジェクトの nativePath プロパティを設定することにより、File オブジェクトで明示的なディレクトリを参照できます。Windows の場合の例を次に示します。 var file:File = new File(); file.nativePath = "C:\\AIR Test"; 重要: このような方法で明示的なパスを参照すると、コードが複数のプラットフォームにわたって機能しなくなる可能性があります。例えば、前の例は Windows 上でのみ機能します。クロスプラットフォームで機能するディレクトリを見つけるには、File.applicationStorageDirectory などの File オブジェクトの静的プロパティを使用します。次に、resolvePath() メソッド(次の節を参照)を使用して、相対パスに移動します。 相対パスのナビゲーションresolvePath() メソッドを使用すると、別の特定のパスを基準とした相対的なパスを取得できます。例えば、次のコードでは、ユーザーのホームディレクトリの AIR Test サブディレクトリを参照するように File オブジェクトを設定しています。 var file:File = File.userDirectory; file = file.resolvePath("AIR Test"); また、次のように、File オブジェクトの url プロパティを使用すると、URL ストリングに基づいてディレクトリを参照することもできます。 var urlStr:String = "file:///C:/AIR Test/"; var file:File = new File() file.url = urlStr; 詳しくは、File パスの変更を参照してください。 参照するディレクトリの選択File クラスの browseForDirectory() メソッドを使用すると、ユーザーがオブジェクトに割り当てるディレクトリを選択できるシステムダイアログボックスを表示できます。browseForDirectory() メソッドは、非同期のメソッドです。このメソッドでは、ユーザーがディレクトリを選択して「開く」ボタンをクリックすると select イベントを送出し、ユーザーが「キャンセル」ボタンをクリックすると cancel イベントを送出します。 例えば、次のコードでは、ユーザーがディレクトリを選択できるようにし、その選択に応じたディレクトリパスを出力します。 var file:File = new File(); file.addEventListener(Event.SELECT, dirSelected); file.browseForDirectory("Select a directory"); function dirSelected(e:Event):void { trace(file.nativePath); } 注意: Android では、browseForDirectory() メソッドはサポートされていません。このメソッドを呼び出しても効果はありません。すぐに cancel イベントが送出されます。ユーザーがディレクトリを選択できるようにするには、代わりにアプリケーションで定義されているカスタムダイアログを使用する必要があります。
アプリケーションを起動したディレクトリの参照アプリケーションを起動したディレクトリの場所を取得するには、アプリケーションの起動時に送出された InvokeEvent オブジェクトの currentDirectory プロパティを確認します。詳しくは、コマンドライン引数のキャプチャを参照してください。 File オブジェクトでのファイルの参照File オブジェクトで参照するファイルを設定するには、様々な方法があります。 明示的なファイルパスの参照重要: 明示的なパスを参照すると、コードが複数のプラットフォームにわたって機能しなくなる可能性があります。例えば、C:¥foo.txt というパスは、Windows 上でのみ機能します。クロスプラットフォームで機能するディレクトリを見つけるには、File.applicationStorageDirectory などの File オブジェクトの静的プロパティを使用します。次に、resolvePath() メソッド(File パスの変更を参照)を使用して、相対パスに移動します。 次のように、File オブジェクトの url プロパティを使用すると、URL ストリングに基づいてファイルまたはディレクトリを参照できます。 var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File() file.url = urlStr; URL は、次のように File() コンストラクター関数に渡すこともできます。 var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File(urlStr); url プロパティでは、常に URI エンコード形式の URL が返されます(例えば、スペースは "%20 に置き換えられます)。 file.url = "file:///c:/AIR Test"; trace(file.url); // file:///c:/AIR%20Test また、File オブジェクトの nativePath プロパティを使用して明示的なパスを設定することもできます。例えば、次のコードを Windows コンピューターで実行すると、C: ドライブの AIR Test サブディレクトリにある test.txt ファイルを参照するように File オブジェクトが設定されます。 var file:File = new File(); file.nativePath = "C:/AIR Test/test.txt"; このパスは、次のように File() コンストラクター関数に渡すこともできます。 var file:File = new File("C:/AIR Test/test.txt"); nativePath プロパティのパス区切り文字としては、スラッシュ(/)を使用します。Windows では、円記号(¥)も使用できますが、その場合、アプリケーションが複数のプラットフォームにわたって機能しなくなる可能性があります。 詳しくは、File パスの変更を参照してください。 ディレクトリ内のファイルの列挙File オブジェクトの getDirectoryListing() メソッドを使用すると、ディレクトリのルートレベルにあるファイルおよびサブディレクトリを参照する File オブジェクトの配列を取得することができます。詳しくは、ディレクトリの列挙を参照してください。 参照するファイルの選択File クラスには、ユーザーがオブジェクトに割り当てるファイルを選択できるシステムダイアログボックスを表示する以下のメソッドがあります。
これらのメソッドでは、いずれも非同期で処理が行われます。browseForOpen() メソッドと browseForSave() メソッドでは、ユーザーがファイル(browseForSave() の場合はターゲットパス)を選択すると select イベントを送出します。browseForOpen() メソッドと browseForSave() メソッドのターゲットの File オブジェクトは、その選択に応じて、選択されたファイルを参照します。browseForOpenMultiple() メソッドでは、ユーザーがファイルを選択すると selectMultiple イベントを送出します。selectMultiple イベントは FileListEvent 型のイベントで、その files プロパティに(選択されたファイルを参照する) File オブジェクトの配列が格納されます。 例えば、次のコードでは、ファイルを選択するための「開く」ダイアログボックスが表示されます。 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); } アプリケーションで別の参照ダイアログボックスが開かれている場合に参照メソッドを呼び出すと、ランタイムから Error 例外がスローされます。 File パスの変更resolvePath() メソッドを呼び出すか、オブジェクトの nativePath プロパティまたは url プロパティを変更することにより、既存の File オブジェクトのパスを変更することもできます。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 nativePath プロパティを使用する場合、ディレクトリの区切り文字としてスラッシュ(/)を使用します。Windows では、円記号(¥)も使用できますが、コードがクロスプラットフォームで機能しなくなるため、それは避ける必要があります。 サポートされる AIR URL スキームAIR における File オブジェクトの url プロパティの定義では、以下のいずれかの URL スキームを使用できます。
2 つのファイル間の相対パスの取得getRelativePath() メソッドを使用すると、2 つのファイル間の相対パスを取得できます。 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 getRelativePath() メソッドの 2 番目のパラメーターである useDotDot パラメーターを使用すると、.. シンタックスを結果として返して、親ディレクトリを示すことができるようになります。 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 標準化バージョンのファイル名の取得Windows および Mac OS では、ファイル名およびパス名で大文字と小文字が区別されません。次のような場合、2 つの File オブジェクトで同じファイルが参照されます。 File.documentsDirectory.resolvePath("test.txt"); File.documentsDirectory.resolvePath("TeSt.TxT"); ただし、実際のドキュメント名やディレクトリ名には大文字も使用されます。例えば、次の例では、ドキュメントディレクトリに AIR Test というフォルダーがあることを前提にしています。 var file:File = File.documentsDirectory.resolvePath("AIR test"); trace(file.nativePath); // ... AIR test file.canonicalize(); trace(file.nativePath); // ... AIR Test canonicalize() メソッドでは、大文字と小文字が区別された正しいファイル名またはディレクトリ名を使用するように nativePath オブジェクトが変換されます。Linux などの大文字と小文字を区別するファイルシステムでは、大文字と小文字の区別だけが異なる複数のファイルが存在する場合、canonicalize() メソッドにより、最初に見つかったファイル(ファイルシステムによって決められた順序による)に合わせてパスが調整されます。 canonicalize() メソッドは、次のように、Windows で短いファイル名(「8.3」形式の名前)を長いファイル名に変換する場合にも使用できます。 var path:File = new File(); path.nativePath = "C:\\AIR~1"; path.canonicalize(); trace(path.nativePath); // C:\AIR Test パッケージおよびシンボリックリンクの操作各種のオペレーティングシステムで、パッケージファイルおよびシンボリックリンクファイルがサポートされています。 パッケージ - Mac OS では、ディレクトリをパッケージとして指定して、Mac OS Finder にディレクトリではなく単一のファイルとして表示することができます。 シンボリックリンク - Mac OS、Linux および Windows Vista では、シンボリックリンクがサポートされています。シンボリックリンクを使用すると、ファイルからディスク上の別のファイルやディレクトリを参照できるようになります。シンボリックリンクはエイリアスに似ていますが、同じではありません。エイリアスは常に(ディレクトリではなく)ファイルとして報告され、エイリアスまたはショートカットに対して読み取りまたは書き込みを行っても、その参照先である元のファイルまたはディレクトリが影響を受けることはありません。これに対し、シンボリックリンクは、参照先のファイルまたはディレクトリとまったく同じように動作します。ファイルまたはディレクトリとして報告することができ、シンボリックリンクに対して読み取りまたは書き込みを行うと、シンボリックリンク自体ではなく、参照先のファイルまたはディレクトリに反映されます。 さらに、Windows では、ジャンクションポイント(NTFS ファイルシステムで使用される)を参照する File オブジェクトの isSymbolicLink プロパティが true に設定されています。 File クラスには、File オブジェクトがパッケージまたはシンボリックリンクを参照しているかどうかを確認するための isPackage プロパティおよび isSymbolicLink プロパティが用意されています。 次のコードでは、ユーザーのデスクトップディレクトリを繰り返し処理して、パッケージではないサブディレクトリの一覧を出力します。 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); } } 次のコードでは、ユーザーのデスクトップディレクトリを繰り返し処理して、シンボリックリンクではないファイルおよびディレクトリの一覧を出力します。 var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (!desktopNodes[i].isSymbolicLink) { trace(desktopNodes[i].name); } } canonicalize() メソッドでは、シンボリックリンクのパスを、そのリンクの参照先のファイルまたはディレクトリを参照するように変更します。次のコードでは、ユーザーのデスクトップディレクトリを繰り返し処理して、シンボリックリンクであるファイルによって参照されているパスを報告します。 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); } } ボリューム上の利用可能な領域の特定File オブジェクトの spaceAvailable プロパティは、ファイルの場所として使用できる領域をバイト単位で示します。例えば、次のコードでは、アプリケーション記憶領域ディレクトリで利用可能な領域を確認します。 trace(File.applicationStorageDirectory.spaceAvailable); File オブジェクトがディレクトリを参照している場合、spaceAvailable プロパティはファイルが使用できるディレクトリ内の領域を示します。File オブジェクトがファイルを参照している場合、spaceAvailable プロパティはファイルが増大可能な領域を示します。ファイルの場所が存在しない場合、spaceAvailable プロパティは 0 に設定されます。File オブジェクトがシンボリックリンクを参照している場合、spaceAvailable プロパティは、シンボリックリンクが指している場所で利用可能な領域に設定されます。 通常、ディレクトリやファイルに利用可能な領域は、ディレクトリまたはファイルを格納するボリュームで利用可能な領域と同じです。ただし、利用可能な領域では、クォータやディレクトリごとの制限が考慮される場合があります。 ファイルやディレクトリをボリュームに追加するには、一般的に、実際のファイルのサイズやディレクトリのコンテンツのサイズよりも大きな領域が必要です。例えば、オペレーティングシステムの場合、インデックス情報を格納するためにより多くの領域が必要になる可能性があります。また、必要なディスクセクタのために、追加の領域が使用される場合があります。さらに、利用可能な領域は動的に変化します。したがって、報告されたすべての領域をファイル記憶域として割り当てることはできません。ファイルシステムへの書き込みについては、ファイルの読み取りと書き込みを参照してください。 StorageVolumeInfo.getStorageVolumes() メソッドは、マウントされたストレージボリュームに関する詳細を提供します(ストレージボリュームの操作を参照)。 デフォルトのシステムアプリケーションでファイルを開くAIR 2 では、オペレーティングシステムによって登録されているアプリケーションを使用してファイルを開くことができます。例えば、AIR アプリケーションで DOC ファイルを開く場合は、DOC ファイルを開くように登録されているアプリケーションを使用します。File オブジェクトの openWithDefaultApplication() メソッドを使用すると、ファイルを開くことができます。例えば、次のコードでは、test.doc というファイルがユーザーのデスクトップに、DOC ファイル用のデフォルトのアプリケーションを使用して開かれます。 var file:File = File.deskopDirectory; file = file.resolvePath("test.doc"); file.openWithDefaultApplication(); 注意: Linux では、ファイル名拡張子でなく、ファイルの MIME タイプによって、ファイルのデフォルトのアプリケーションが判断されます。
次のコードでは、MP3 ファイルに移動して、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(); } openWithDefaultApplication() メソッドは、アプリケーションディレクトリに配置されているファイルでは使用できません。 AIR では、openWithDefaultApplication() メソッドを使用して開くことができないファイルがあります。Windows では、EXE や BAT など、一定の種類のファイルを開くことができません。Mac OS および Linux では、特定のアプリケーションを起動するファイルは開けません(Mac OS の Terminal と AppletLauncher、および Linux の csh、bash または ruby が含まれます)。openWithDefaultApplication() メソッドを使用して、これらのファイルを開こうとすると、例外が発生します。開くことができないファイルの種類について詳しくは、File.openWithDefaultApplication() メソッドのリファレンスガイドを参照してください。 注意: ネイティブインストーラー(拡張デスクトップアプリケーション)を使用してインストールした AIR アプリケーションに関しては、この制限はありません。詳しくは、「ネイティブインストーラーでの AIR アプリケーションのパッケージ化」を参照してください。
|
|