File 類別包含兩個用於複製檔案或目錄的方法:
copyTo()
和
copyToAsync()
。File 類別包含兩個用於移動檔案或目錄的方法:
moveTo()
和
moveToAsync()
。
copyTo()
和
moveTo()
方法是以同步方式運作,而
copyToAsync()
和
moveToAsync()
方法則是以非同步方式運作 (請參閱:
AIR 檔的基本概念
)。
若要複製或移動檔案,請設定兩個 File 物件。其中一個物件指向要複製或移動的檔案,而且它是呼叫複製或移動方法的物件;而另一個物件則指向目的地 (結果) 路徑。
下列程式碼會在使用者文件目錄的 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
參數 (第二個參數) 設定為
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()
方法,可以將檔案或目錄移至系統的垃圾桶。