日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Flex AIR 文件对象操作

發布時間:2023/12/10 ChatGpt 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flex AIR 文件对象操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能1、指向目錄和文件

File對象有兩個屬性都能定義文件路徑,它們是nativePath和url。nativePath是在特定平臺使用的文件路徑(主要就是Windows和MacOs上的路徑表示不同),url則是統一的”file:///c:/Sample/test.txt”這樣的表示方法。

?

我們來看幾個指向目錄的實例,其中1-7演示了如何獲取特殊目錄:?

var file:File = File.userDirectory; //指向用戶文件夾 var file:File = File.documentsDirectory; //指向用戶文檔文件夾 var file:File = File.desktopDirectory; //指向桌面var file:File = File.applicationStorageDirectory; //指向應用程序存儲目錄(參見AIR的URL方案) var dir:File = File.applicationDirectory; //應用程序安裝目錄 var dir:File = File.getRootDirectories(); //文件系統根目錄

?

還有一招,指向請求啟動該應用程序的目錄,先空著,以后補上。參考資料見《Capturingcommand line arguments》?

var file:File = new File(); file.nativePath = "C:\\Mousebomb\\"; //(windows平臺)指向一個具體的目錄,這里使用了nativePath屬性,”C:\\Mousebomb\\”只適用windows中。 var file:File = File.userDirectory; file = file.resolvePath(”Mousebomb”); //跳轉到用戶目錄下的Mousebomb目錄 var urlStr:String = "file:///C:/Mousebomb/"; var file:File = new File() file.url = urlStr; //指向c盤下的Mousebomb目錄,這里使用了url屬性 /*讓用戶選擇目錄*/var file:File = new File(); file.addEventListener(Event.SELECT, dirSelected); file.browseForDirectory("Select a directory");function dirSelected(e:Event):void { trace(file.nativePath); }

?

下面看看指向文件的實例:?

?

指向明確的文件地址:?

var file:File = File.applicationStorageDirectory; file = file.resolvePath("Flashj.txt");

?

使用url屬性的例子:?

var urlStr:String = "file:///C:/Mousebomb/Flashj.txt"; var file:File = new File() file.url = urlStr;

?

當然你也可以直接這樣寫

var urlStr:String = "file:///C: /Mousebomb/Flashj.txt"; var file:File = new File(urlStr); //url中的空格會被%20替換

?

使用nativePath屬性:?

var file:File = new File(); file.nativePath = "C:/ Mousebomb/Flashj.txt";

?

或者?

var file:File = new File("C:/ Mousebomb/Flashj.txt"); //(Windows下)

?

通過對話框讓用戶選擇文件?

實現這個功能需要認識三個方法:?

browseForOpen()?

browseForSave()?

browseForOpenMultiple()?

三個方法都是異步的,browseForOpen() 和 browseForSave()方法在用戶選擇文件時會觸發select事件,在選擇了某文件時,File指向選擇的文件。

而browseForOpenMultiple()方法會觸發selectMultiple事件,該事件屬于FileListEvent型,它的屬性中具有指向所選文件的File對象數組。

例子:?

var fileToOpen:File = File.documentsDirectory; selectTextFile(fileToOpen); function selectTextFile(root:File):void { var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml");root.browseForOpen("Open", [txtFilter]); root.addEventListener(Event.SELECT, fileSelected); } function fileSelected(event:Event):void { trace(fileToOpen.nativePath); }

?

?

功能2、拷貝文件和目錄?

拷貝文件使用到的方法有copyTo()和copyToAsync(),詳見AIR文件基礎,前者為同步方法,后者為異步方法。

要拷貝文件,需要創建2個File對象,一個指向原文件,一個指向目標文件。像下面兩例:?

?

1.同步拷貝例:?

var original:File = File.documentsDirectory.resolvePath("Mousebomb/FlashJ.txt"); var newFile:File = File.resolvePath("Mousebomb/FlashJcn.txt"); original.copyTo(newFile, true);

?

第二個參數true表示覆蓋存在的文件,默認值是false,若設置為false,而拷貝的目標文件已經存在,則AIR會發出IOErrorEvent事件。?

?

2.異步拷貝例:?

var original = File.documentsDirectory; original = original.resolvePath("Mousebomb/FlashJ.txt"); var destination:File = File.documentsDirectory; destination = destination.resolvePath("FlashJ/FlashJcn.txt"); original.addEventListener(Event.COMPLETE, fileCopyCompleteHandler); original.addEventListener(IOErrorEvent.IO_ERROR, fileCopyIOErrorEventHandler); original.CopyToAsync(destination); function fileCopyCompleteHandler(event:Event):void { trace(event.target); // [object File] } function fileCopyIOErrorEventHandler(event:IOErrorEvent):void { trace("I/O Error."); }

?

?

功能3、移動文件和目錄?

移動文件使用的方法有moveTo()和MoveToAsync(),不僅長相類似,連使用方法都與拷貝文件一樣,可以直接參考上文。

?

功能4、刪除文件和目錄(或移至回收站)?

deleteFile()和deleteFileAsync()負責刪除功能,而moveToTrash()和moveToTrashAsync()功能是移至回收站。先創建一個File對象指向某個文件或目錄,然后執行四個方法之一,處理異步方法要加事件監聽。

var file:File = File.documentsDirectory.resolvePath("DeleteMe.txt"); file.moveToTrash();

?

功能5、列出某目錄中的文件和目錄?

可以使用getDirectoryListing()方法和getDirectoryListingAsync()方法獲取某個目錄下文件與子目錄的File指針數組。

例如:?

var directory:File = File.documentsDirectory; var contents:Array = directory.getDirectoryListing(); for (var i:uint = 0; i < contents.length; i++) { trace(contents[i].name, contents[i].size); }

?

本例輸出了用戶文檔目錄中的文件名和大小。?

若使用異步方法,例如:?

var directory:File = File.documentsDirectory; directory.getDirectoryListingAsync(); directory.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListHandler); function dirListHandler(event:FileListEvent):void {   var contents:Array = event.files; for (var i:uint = 0; i < contents.length; i++) { trace(contents[i].name, contents[i].size); } }

?

其中directoryListing事件對象中有個files屬性,為目錄下內容的File指針數組。

?

功能6、創建臨時文件和文件夾?

使用createTempFile()和createTempDirectory()方法可以創建臨時文件和文件夾。?

var temp:File = File.createTempFile(); //在系統臨時文件夾下創建臨時文件 //createTempFile()方法會自動創建一個唯一的臨時文件。 //createTempDirectory ()方法會自動創建一個唯一的臨時文件夾。

?

你可以用臨時文件來臨時存儲應用程序回話中的信息。?

由于臨時文件不會自動刪除,所以你可能得讓應用程序在關閉前刪除它。?

?

功能7、創建目錄?

使用createDirectory()方法可以創建目錄,例如:?

var dir:File = File.userDirectory.resolvePath("Mousebomb"); dir.createDirectory();

?

這個例子在用戶文件夾下創建了Mousebomb目錄,如果Mousebomb目錄存在,則不會作出操作。?

?

功能8、讀取文件信息?

File類中包含以下屬性,提供File對象所指向文件或目錄的信息。

?

屬性 描述

creationDate 創建日期?

exists 是否存在?

extension 擴展名,若無則為null?

icon 該文件的圖標對象

isDirectory 是否目錄?

modificationDate 修改日期

name 文件名(包括擴展名)?

nativePath 特定平臺使用的文件路徑?

parent 父級目錄,若該File對象就是頂級則此屬性為null?

size 字節大小?

url 統一資源定位符

詳細參見AIR ActionScript. 3.0 Language Reference for Adobe AIR.

?

功能9、獲取文件系統信息?

File類包含一下靜態屬性,提供有用的文件系統信息(主要是跨平臺使用):?

?

屬性 描述?

File.lineEnding 系統的行結束符?

File.separator 系統的分隔符(Windows下為\ Mac Os為/)?

File.systemCharset 系統的默認文件編碼,屬于系統所使用的字符集?

?

順便插進Capabilities類包含的靜態屬性:?

?

屬性 描述?

Capabilities.hasIME 當前運行的系統是否安裝了輸入法編輯器

Capabilities.language 當前運行的系統的語言編碼?

Capabilities.os 當前運行的操作系統

轉載于:https://www.cnblogs.com/helloquan/p/5686371.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Flex AIR 文件对象操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。