`
youhao
  • 浏览: 26913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Flex AIR 文件对象操作

    博客分类:
  • AIR
 
阅读更多

功能1、指向目录和文件

File对象有两个属性都能定义文件路径,它们是nativePath和url。nativePath是在特定平台使用的文件路径(主要就是Windows和MacOs上的路径表示不同),url则是统一的”file:///c:/Sample%20directory/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 当前运行的操作系统

 

转:http://blog.csdn.net/xhhuang1979/article/details/7300759

分享到:
评论

相关推荐

    flex air中文官方帮助文档

    文档将指导如何配置发布设置,生成AIR文件,并在不同操作系统上安装和运行。 十、调试与性能优化 调试技巧和性能优化是提高应用质量的关键。文档会介绍如何使用Flex Builder的调试工具定位并解决问题,以及优化代码...

    flex4.6 air 读写文本文件

    在Flex 4.6与Adobe Integrated Runtime (AIR)的开发中,读写文本文件是一项基本操作,对于初学者来说尤其重要。本教程将详细介绍如何在Flex应用中实现这一功能,以便用户可以对本地的文本文件进行读取、修改以及保存...

    flex air 导出 excel

    然而,需要注意的是,Flex Air原生并不直接支持导出包含中文字符的Excel文件,这可能是由于早期版本的Excel文件格式处理上的限制。 要实现Flex Air导出Excel的功能,通常需要借助第三方库或者服务。一种常见的方法...

    Flex air 读写Excel文件

    在给定的“Flex air 读写Excel文件”的主题中,我们将深入探讨如何在Flex Air中处理Excel文件,特别是涉及到中文字符的读写以及多页操作。 在Flex Air中读写Excel文件,通常需要借助第三方库,因为Flex原生并不支持...

    flex air开发中文教程

    Flex Air开发中文教程是一本专为富媒体软件开发者设计的实战型指南,旨在教会读者如何利用Adobe Flex技术来构建和部署Adobe Integrated Runtime (AIR)应用程序。Flex是基于ActionScript和MXML的开源框架,用于创建...

    Flex Air压缩和读取zip文件

    Flex Air压缩和读取zip文件是一项在开发过程中经常会遇到的任务,尤其在处理大量数据或文件传输时。这个主题主要涉及到Flex、Adobe AIR以及ZipArchive库的使用。让我们深入了解一下这些概念和技术。 首先,Flex是一...

    Flex Air音乐播放器源码

    `.flexProperties` 文件则是Flex项目的通用属性配置,它定义了项目的基本属性,如Flex SDK版本、默认的MXML或ActionScript类、输出目标(如AIR或Flash Player)等。这些设置对构建过程有直接影响。 `.project` 文件...

    Flex Air 学习资料\01.Flex概述.rar

    Air提供了与操作系统深度集成的能力,例如访问本地文件系统、拖放操作和系统通知。 7. **Flex组件**:Flex提供了一系列预定义的UI组件,如按钮、文本框、面板等,这些组件经过优化,能够提供高性能和一致的用户体验...

    flex air 调用C代码

    Flex Air调用C代码是跨平台开发中的一个重要技术,它允许使用ActionScript 3的Flex应用程序与本地系统资源进行交互,比如C/C++编写的动态链接库(DLLs)或共享对象(SOs)。这个技术主要依赖于Adobe AIR的Native ...

    Adoe FlexAir教程

    Flex Air教程.exe文件可能是这个教程的可执行程序,包含了教学资源、示例代码和练习,帮助你逐步掌握Flex Air开发。为了充分利用这个教程,确保你按照步骤操作,并且动手实践每个示例,理论与实践相结合,将使学习...

    Flash+Flex+Air移动开发入门经典 pdf

    《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...

    flex air 单机版俄罗斯方块 源码文件

    这款"Flex Air 单机版俄罗斯方块小游戏 源码文件"提供了完整的源代码,是学习Flex Air开发、游戏编程以及俄罗斯方块实现逻辑的宝贵资源。 在Flex Air中开发游戏,主要涉及到以下几个关键知识点: 1. **...

    FLEX播放器 flex 开发AIR及Flex之mp3播放器教程

    在Flex与AIR结合时,我们能利用AIR提供的本地文件系统访问权限。这使得播放器可以直接读取本地MP3文件,或者通过文件选择对话框让用户选择要播放的文件。此外,AIR还支持网络连接,所以播放器也可以从网络上流式传输...

    flex4.6 air 异步操作sqlite数据库

    "flex4.6 air 异步操作sqlite数据库"的主题着重于如何在Flex 4.6和Adobe AIR环境中实现非阻塞的SQLite数据库操作。在传统的同步操作中,程序会等待数据库操作完成才会执行下一步,这可能导致用户界面冻结,尤其是在...

    flex air记录日志的实例

    在Flex Air中,我们可以通过`NativeApplication`对象的`nativeProcessStartupInfo.arguments`属性来传递命令行参数,实现日志保存到本地文件的功能。 5. 实例: 压缩包中的`Logger`文件很可能是一个实现了上述功能...

    flex-air解压缩工具

    通过这些文件,我们可以推断,Flex Air解压缩工具可能采用ActionScript编写,使用了Flex或Air的API来实现对ZIP文件的读取和解压操作。ActionScript是一种面向对象的脚本语言,它在Air环境中可以直接访问文件系统,...

    flex air + java

    在实际应用中,例如,如果开发一个桌面版的CRM系统,Flex或AIR可以作为用户友好的前端,而Java后端则负责数据库操作、业务逻辑处理等。Merapi使这两个部分能够有效地协同工作,提高了开发效率和系统的可维护性。 总...

    flex 实例连载 air 全面

    《Flex实例连载:Air全面解析》 SQLite,作为一款轻量级的关系型数据库管理系统,以其高效、稳定和跨平台的特性,在移动应用和嵌入式系统中广泛应用。本系列教程将深入探讨SQLite在Adobe Air环境中的应用,通过Flex...

    Java flex 开发air完整源码+文档

    - `css20.chm`和`jQueryAPI-1.41.chm`:这两个文件可能是关于CSS2和jQuery API的离线帮助文档,尽管它们不是直接与Java Flex AIR开发相关的,但可以作为前端开发的参考,尤其是当Flex应用涉及用户界面设计时。...

Global site tag (gtag.js) - Google Analytics