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);
この例では、
copyTo()
メソッドの
overwrite
パラメーター(2 番目のパラメーター)の値が
true
に設定されています。
overwrite
を
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()
メソッドもあります。