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() メソッドもあります。