7yue's Weblog

Thinking in RIA Solutions...2470,8514,1020的生活演绎

« 培训调查Blog升级至ZBlog 1.8 »

AIR APIs详解-文件系统访问 Part4

上一部分我们详细说了moveTo这个功能,说实话,这真是一个不讨人喜欢的方法,但是在AIR里,我们要去移动一个文件夹,就必须用到它。另外一个我们还经常用到的功能是copyTo,我想一百个玩电脑的应该有99个人知道什么叫拷贝,这里就不对这个方法做详解了,你可以把第三部分的代码全部保留,把moveTo换成copyTo尝试一下通过API来拷贝文件夹或文件是什么样子(其实这功能一点都不兴奋)。

今天第4部分的文件API详解,给各位说说删除和放入回收站的部分,同样这2个部分也是API文件访问API中跨平台的公用API。在开始讲解这个部分前,我想有个小提示,各位从这个部分和前三个部分的讲解中,看到的文件操作模式,全部是同步(sync)模式,关于异步(Async)模式,放到后面再集中解释。

删除文件夹和删除文件是两个独立的方法,删除文件夹是deleteDirectory(),删除文件是deleteFile()。我们先来看deleteDirectory()方法,删除一个文件夹,最简单的代码是:

var delDirectory:File=File.desktopDirectory.resolvePath("myAIRDirectory");
delDirectory.deleteDirectory()

你把上述代码放在一个函数里,通过一个Button的click来运行查看一下结果。我反正是给了一些假设来测试delDirectory()方法。
假设一,myAIRDirectory文件夹不存在,结果是Error #3003: File or directory does not exist。文件夹不存在,太白痴的假设一,开发者千万别犯这种错误。
假设二,myAIRDirectory文件夹存在,是个空文件夹。结果文件夹被成功删除。修改deleteDirectory()中的参数为true,再执行一次操作(恢复被删掉的myAIRDirectory),结果仍然是成功。证明false和true的参数值对空文件家没有作用。
假设三,myAIRDirectory文件夹存在,该文件夹内有一个子文件夹和若干文件,去掉deleteDirectory()方法中的true参数值,执行。结果是Error #3010: Directory is not empty。文件夹不能为空,可见默认deleteDirectory()的参数false,是不允许直接删除非空文件夹
假设四,将假设三中的deleteDirectory()参数改成true,执行。结果是myAIRDirectory连同其内部所有子文件夹和文件一并被删除。
所以,请慎重使用deleteDirectory(true)的方式,避免误操作。
删除文件夹还有一个比较安全的操作,叫做删除到回收站,使用起来也比较简单,我推荐你这么干,因为保险一些。这个方法命名很有趣,不是deleteToTrash,而是moveToTrash。原因很简单,因为deleteToTrash是中国式英语的理解,呵呵。

接下来,我们聊聊删除文件。这个方法是deleteFile,代码如下:

var delFile:File=File.desktopDirectory.resolvePath("1.txt");
delFile.deleteFile();

同样,删除文件的操作,其目标文件必须存在,否则会有Error #3003: File or directory does not exist 提示。另外,删除文件也最好谨慎操作,有一个更好的方法是就是同样使用删除到回收站(可以删除文件夹和文件,方法一样)moveToTrash,安全又简单。

这个部分很简单,下一部分我们继续讨论文件访问API。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204

Copyright 2007 www.7yue.com. Some Rights Reserved.
京ICP备05064035号