ファイルの操作Adobe AIR 1.0 およびそれ以降 AIR のファイル API を使用すると、ファイル操作の基本的な機能をアプリケーションに追加することができます。例えば、ファイルの読み取りおよび書き込み、ファイルのコピーおよび削除などを追加できます。アプリケーションからローカルファイルシステムにアクセスできるようになるので、まだ参照していない場合はAIR のセキュリティを参照してください。 注意: ファイルの種類を AIR アプリケーションに関連付けることができます(これによりダブルクリックでアプリケーションを開けるようになります)。詳しくは、ファイルの関連付けの管理を参照してください。
ファイル情報の取得File クラスには、File オブジェクトが参照するファイルまたはディレクトリに関する情報を示す以下のプロパティがあります。
これらのプロパティについて詳しくは、『Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド』の File クラスの項を参照してください。 ファイルのコピーおよび移動File クラスには、ファイルまたはディレクトリをコピーするためのメソッドとして、copyTo() と copyToAsync() という 2 つのメソッドがあります。また、ファイルまたはディレクトリを移動するためのメソッドとして、moveTo() と moveToAsync() という 2 つのメソッドがあります。copyTo() メソッドと moveTo() メソッドでは同期的に処理が行われ、copyToAsync() メソッドと moveToAsync() メソッドでは非同期で処理が行われます(AIR ファイルの基礎を参照)。 ファイルをコピーまたは移動するには、2 つの File オブジェクトを設定します。1 つは、コピーまたは移動する対象のファイルを参照するオブジェクトで、このオブジェクトでコピーまたは移動メソッドを呼び出します。もう 1 つは、コピー先または移動先(結果)のパスを参照します。 次の例では、ユーザーのドキュメントディレクトリの AIR Test サブディレクトリにある test.txt ファイルを、copy.txt という名前で同じディレクトリにコピーします。 var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); var newFile:File = File.resolvePath("AIR Test/copy.txt"); original.copyTo(newFile, true); この例では、copyTo() メソッドの overwrite パラメーター(2 番目のパラメーター)の値が true に設定されています。overwrite を true に設定することにより、既存のターゲットファイルが上書きされます。このパラメーターはオプションです。このパラメーターを false (デフォルト値)に設定した場合、ターゲットファイルが既に存在すると IOErrorEvent イベントが送出されます(ファイルはコピーされません)。 「非同期」バージョンのコピーメソッドおよび移動メソッドでは、非同期で処理が行われます。タスクの完了またはエラーの状態を監視するには、次のように addEventListener() を使用します。 var original = File.documentsDirectory; original = original.resolvePath("AIR Test/test.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("AIR Test 2/copy.txt"); original.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); original.addEventListener(IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler); original.moveToAsync(destination); function fileMoveCompleteHandler(event:Event):void { trace(event.target); // [object File] } function fileMoveIOErrorEventHandler(event:IOErrorEvent):void { trace("I/O Error."); } File クラスには、ファイルまたはディレクトリをシステムのごみ箱に移動する File.moveToTrash() メソッドと File.moveToTrashAsync() メソッドもあります。 ファイルの削除File クラスの deleteFile() メソッドおよび deleteFileAsync() メソッドを使用すると、ファイルを削除することができます。1 つ目のメソッドでは同期的に処理が行われ、2 つ目のメソッドでは非同期で処理が行われます(AIR ファイルの基礎を参照)。 例えば、次のコードでは、ユーザーのドキュメントディレクトリにある test.txt ファイルが同期的に削除されます。 var file:File = File.documentsDirectory.resolvePath("test.txt"); file.deleteFile(); 次のコードでは、ユーザーのドキュメントディレクトリの test.txt ファイルが非同期で削除されます。 var file:File = File.documentsDirectory.resolvePath("test.txt"); file.addEventListener(Event.COMPLETE, completeHandler) file.deleteFileAsync(); function completeHandler(event:Event):void { trace("Deleted.") } また、moveToTrash() メソッドおよび moveToTrashAsync() メソッドを使用すると、ファイルまたはディレクトリをシステムのごみ箱に移動することもできます。詳しくは、ごみ箱へのファイルの移動を参照してください。 ごみ箱へのファイルの移動File クラスの moveToTrash() メソッドおよび moveToTrashAsync() メソッドを使用すると、ファイルまたはディレクトリをシステムのごみ箱に送ることができます。1 つ目のメソッドでは同期的に処理が行われ、2 つ目のメソッドでは非同期で処理が行われます(AIR ファイルの基礎を参照)。 例えば、次のコードでは、ユーザーのドキュメントディレクトリにある test.txt ファイルがシステムのごみ箱に同期的に移動されます。 var file:File = File.documentsDirectory.resolvePath("test.txt"); file.moveToTrash(); 注意: 回復可能なごみ箱フォルダーの概念をサポートしていないオペレーティングシステムでは、ファイルがすぐに削除されます。
一時ファイルの作成File クラスの createTempFile() メソッドを使用すると、次のように、システムの一時ディレクトリフォルダーにファイルを作成できます。 var temp:File = File.createTempFile(); createTempFile() メソッドでは、一意の一時ファイルが自動的に作成されます(そのため、新しい一意の場所を指定する手間が省けます)。 一時ファイルは、アプリケーションのセッションで使用される情報を一時的に格納するために使用できます。システムの一時ディレクトリに一意の一時ディレクトリを作成するための createTempDirectory() メソッドも用意されています。 一時ファイルはすべてのデバイスで自動的に削除されるわけではないので、アプリケーションを終了する前に削除する必要がないか確認してください。 |
|