處理檔案Adobe AIR 1.0 以及更新的版本 您可以利用 AIR 檔案 API,在應用程式中加入基本的檔案互動功能。例如,您可以讀取和寫入檔案、複製和刪除檔案等等。由於應用程式會存取本機檔案系統,因此請先參閱:AIR 安全性。 備註: 您可以將某個檔案類型與 AIR 應用程式產生關聯 (如此只要按兩下該檔案,即可開啟 AIR 應用程式)。如需詳細資訊,請參閱管理檔案關聯。
取得檔案資訊File 類別包含下列屬性,這些屬性可提供 File 物件所指向檔案或目錄的相關資訊:
如需這些屬性的詳細資訊,請參閱適用於 Adobe Flash Platform 的 ActionScript 3.0 參考中的 File 類別項目。 複製和移動檔案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() 方法,可以將檔案或目錄移至系統的垃圾桶。 刪除檔案File 類別包含 deleteFile() 和 deleteFileAsync() 方法。這兩個方法可用來刪除檔案:前者會以同步方式運作,而後者則是以非同步方式運作 (請參閱: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.") } File 類別還包含 moveToTrash() 和 moveToTrashAsync() 方法,可以讓您用來將檔案或目錄移至「系統」的垃圾桶。如需詳細資訊,請參閱將檔案移至垃圾桶。 將檔案移至垃圾桶File 類別包含 moveToTrash() 和 moveToTrashAsync() 方法。這兩個方法可用來將檔案或目錄傳送至「系統」的垃圾桶:前者會以同步方式運作,而後者則是以非同步方式運作 (請參閱:AIR 檔的基本概念)。 例如,下列程式碼會以同步方式,將使用者文件目錄中的 test.txt 檔案移至「系統」的垃圾桶: var file:File = File.documentsDirectory.resolvePath("test.txt"); file.moveToTrash(); 備註: 在不具有可復原資源回收筒功能的作業系統上,將會立即移除檔案。
建立暫存檔案File 類別包含 createTempFile() 方法,可以用來在「系統」的暫存目錄資料夾中建立新檔案,如下列範例所示: var temp:File = File.createTempFile(); createTempFile() 會自動建立唯一的暫存檔案 (可以節省您為了尋找新的唯一位置而要花費的功夫)。 您可以使用暫存檔案,暫時儲存在應用程式某個工作階段使用的資訊。請注意,您也可以使用 createTempDirectory() 方法,在「系統」的暫存目錄中建立新的唯一暫存目錄。 在關閉應用程式之前,您可能會想要刪除這個暫存檔案,因為系統「不會」自動刪除所有裝置上的該檔案。 |
|