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