功能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 文件对象操作相关推荐

  1. Flash AIR文件操作:使用文件对象操作文件和目录

    文件对象是啥? 文件对象(File对象)是在文件系统中指向文件或目录的指针.由于安全原因,只在AIR中可用. 文件对象能做啥? 获取特定目录,包括用户目录.用户文档目录.该应用程序启动的目录和程序目录 ...

  2. python文件对象提供了3个读方法、分别是-python3基础之文件对象操作

    1.向文本文件中写入内容 s = 'Hello world 文本文件的读取方法 文本文件的写入方法 ' # 需要写入文件的字符串 print('显示需要写入的内容: {0:s}'.format(s)) ...

  3. AIR文件操作(三):使用FileStream对象读写文件

    快速上手例: 例1.读xml var testXML:XML; var file:File = File.documentsDirectory.resolvePath("Mousebomb/ ...

  4. Flash AIR文件操作:使用FileStream对象读写文件

    快速上手例: 例1.读xml var testXML:XML; var file:File = File.documentsDirectory.resolvePath("Mousebomb/ ...

  5. Flash AIR文件操作:AIR文件基础

    AIR允许我们开发与文件系统协同工作的应用程序 我们可以使用Adobe? AIR? 文件系统API提供的类访问主机的文件系统.使用这些类,可以访问.管理目录与文件,建立目录与文件,向文件写数据等等.我 ...

  6. Flex Air程序打包成独立的exe安装文件

    2019独角兽企业重金招聘Python工程师标准>>> 开发背景: FlexBuilder3.2开发生成的Air程序需要能够独立安装,事先不需要安装AdobeAir运行环境 实现方法 ...

  7. python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象

    一:dat文件 在我之前的博客中,我介绍了对txt文件操作的一些相关知识,以及如何对其进行读写操作,也介绍了文本文件和二进制文件的一些区别.虽然对txt文件操作已经能够满足储存数据的需求,但txt文件 ...

  8. java 对象读写_java 对象输入输出流读写文件的操作实例

    java 对象输入输出流读写文件的操作实例 java 支持对对象的读写操作,所操作的对象必须实现Serializable接口. 实例代码: package vo; import java.io.Ser ...

  9. vba fso读utf 文本_利用FSO对象操作文件

    大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第二节"利用FSO对象操作文件",这个专题 ...

最新文章

  1. 启动多个pid_西门子S7-300PLC实现PID控制
  2. 怎样打造高效节能的数据中心
  3. C#中FileStream的对比以及使用方法
  4. mysql5.6安装sys库_MySQL5.6数据库优化my.cnf配置
  5. LiveVideoStackCon 2021上海站 | 参会指南
  6. 海洋分享lol皮肤插件_LOL战斗之夜客户端BUG频出服务器爆满!如何提前领取皮肤?...
  7. java 1的阶乘之和_1-20的阶乘之和(java)
  8. ImageNet又被Long-Short Transformer 霸榜!
  9. 【BZOJ2154】Crash的数字表格,数论练习之二维LCM(莫比乌斯反演)
  10. Java虚拟机(六)——虚拟机栈
  11. centos安装jdk1.8的三种方法
  12. oracle报27040错误,【oracle案例】创建表空间时遇到 ORA-01119,0RA-27040,0SD-04002
  13. ASP分页要用到的属性ADO CursorLocation知识补充:
  14. IDEA导入eclipse项目并部署到tomcat
  15. 不吼不叫:该如何平静地和孩子合作?
  16. Springboot毕设项目高校食堂饭卡管理824ct(java+VUE+Mybatis+Maven+Mysql)
  17. pd对焦速度_自动对焦速度是由相机还是镜头决定的?
  18. 【SealDEV 倾情奉献】Android APK 安装过程详解
  19. Android Studio TV开发教程(十五) Android N及更早版本中的建议
  20. matlab安装方法以及在重复弹出mathwoks software activation界面的解决办法(需要的license.lic文件内容)

热门文章

  1. django channels
  2. pandas学习笔记——阅读官方文档
  3. 改善代码可测性的若干技巧
  4. 正则表达式验证各种类型的数字
  5. 201521123121 《Java程序设计》第14周学习总结
  6. 微软MIX11大会第一天主旨以及新产品发布总结
  7. linux cron 定时任务无效 /var/spool/cron/xxx
  8. 华强北耳机版本太多,不知道如何选购?
  9. android 后台执行js,android - 当应用程序在后台运行时,Android WebView消耗大量电能...
  10. 在保护继承中基类的共有成员_C#初学者教程系列11:继承