使用AIR创建目录搜索/文件搜索程序。
2008-05-10 20:45
267 查看
小小菜鸟翻译,不足之处请指正。谢谢!~
原文地址:http://www.adobe.com/devnet/air/flex/quickstart/directory_search.html
![](http://www.adobe.com/devnet/air/flex/quickstart/directory_search/images/fig01.jpg)
上图展示的AIR程序描述了以下功能细节:
1:异步读取文件,保证其他ACTIONSCRIPT程序可以在搜索文件的时候执行。
2:从文件名中获得文件的扩展名。
3:使用File对象的平台特定“本地路径(nativePath) ”属性。
FileSearch.zip (ZIP, 39K) 源文件
FileSearch.air (AIR, 628K) 安装程序文件
程序解释:
设置查询的根目录:
小小菜鸟翻译,不足之处请指正。谢谢!~
在Windows平台上:
C:\Documents and Settings\userName\My Documents
在Mac 平台上:
/Users/userName/Documents
用户可以通过设置TextInput组件的值改变搜索路径,当用户点击 搜索按钮,
var dir:File = new File(folderPath.text);
if (!dir.isDirectory)
{
Alert.show("Invalid directory path.", "Error");
}
注意
trace(directory.nativePath); // C:\Documents and Settings\swartz\My Documents
trace(directory.url); // file:///C:/Documents%20and%20Settings/swartz/My%20Documents
搜索指定目录中的匹配文件:
小小菜鸟翻译,不足之处请指正。谢谢!~
主要的搜索过程异步的列出了目录内容,一次一个。这个过程中,其他基于AS的集成可以执行。
search()函数设置
dir.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListed);
dir.getDirectoryListingAsync();
node = currentNodes[i];
if (node.isDirectory)
{
currentSubdirectories.push(currentNodes[i]);
}
当
for (i = currentSubdirectories.length - 1; i > -1; i--)
{
directoryStack.push(currentSubdirectories[i]);
}
到此时,本目录的搜索已经完毕,开始搜索目录数组中directoryStack中的待搜索目录。
var dir:File = directoryStack.pop();
if (dir == null) {
progress.visible = false;
// There are no further directories to search. The search is completed.
} else {
dir.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListed);
dir.listDirectoryAsync();
}
显示搜索结果值:
小小菜鸟翻译,不足之处请指正。谢谢!~
并且把这个变量设置为DataGrid组件
原文地址:http://www.adobe.com/devnet/air/flex/quickstart/directory_search.html
![](http://www.adobe.com/devnet/air/flex/quickstart/directory_search/images/fig01.jpg)
上图展示的AIR程序描述了以下功能细节:
1:异步读取文件,保证其他ACTIONSCRIPT程序可以在搜索文件的时候执行。
2:从文件名中获得文件的扩展名。
3:使用File对象的平台特定“本地路径(nativePath) ”属性。
FileSearch.zip (ZIP, 39K) 源文件
FileSearch.air (AIR, 628K) 安装程序文件
程序解释:
设置查询的根目录:
小小菜鸟翻译,不足之处请指正。谢谢!~
init()函数设置了
folderPathTextInput组件的text值为预定义搜索路径。
folderPath.text=File.documentsDirectory.nativePath;
File.documentsDirectory是用户的“我的文档”目录.
File.documentsDirectory在不同的平台上指定的目录不同。
在Windows平台上:
C:\Documents and Settings\userName\My Documents
在Mac 平台上:
/Users/userName/Documents
用户可以通过设置TextInput组件的值改变搜索路径,当用户点击 搜索按钮,
search()函数判断用户输入的路径是否正确,如果路径不存在,则报错:
var dir:File = new File(folderPath.text);
if (!dir.isDirectory)
{
Alert.show("Invalid directory path.", "Error");
}
注意
nativePath属性和
url属性的不同之处:
trace(directory.nativePath); // C:\Documents and Settings\swartz\My Documents
trace(directory.url); // file:///C:/Documents%20and%20Settings/swartz/My%20Documents
搜索指定目录中的匹配文件:
小小菜鸟翻译,不足之处请指正。谢谢!~
主要的搜索过程异步的列出了目录内容,一次一个。这个过程中,其他基于AS的集成可以执行。
search()函数设置
dirListing事件的监听器,这个事件在
getDirectoryListingAsync()函数执行后触发。
dir.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListed);
dir.getDirectoryListingAsync();
dirListed()函数处理指定目录的文件列表。
这个列表就是dirListing事件的files属性,dirListed()函数把这个属性(数组值)设置给currentNodes变量。
currentNodes = event.files;
[code]dirListed()迭代执行,判断currentNodes数组中的值是否是文件夹,如果是文件夹,把当前值加入到subdirectories 数组中。
node = currentNodes[i];
if (node.isDirectory)
{
currentSubdirectories.push(currentNodes[i]);
}
当
dirListed()函数迭代执行完毕,把currentSubdirectories数组的值添加到即将被搜索的另外一个目录数组中directoryStack
for (i = currentSubdirectories.length - 1; i > -1; i--)
{
directoryStack.push(currentSubdirectories[i]);
}
到此时,本目录的搜索已经完毕,开始搜索目录数组中directoryStack中的待搜索目录。
var dir:File = directoryStack.pop();
if (dir == null) {
progress.visible = false;
// There are no further directories to search. The search is completed.
} else {
dir.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListed);
dir.listDirectoryAsync();
}
显示搜索结果值:
小小菜鸟翻译,不足之处请指正。谢谢!~
dirListed()函数迭代执行,搜索目录数组中指定的文件夹中的文件,如果搜到的文件的扩展名和我们指定的文件类型匹配,就把这个文件加入到一个ArrayCollection类型的变量resultData中。
并且把这个变量设置为DataGrid组件
resultsGrid的DataProvider属性。
相关文章推荐
- IOS的app程序中的文件目录的功能和使用详细说明
- AIR文件操作:使用文件对象操作文件和目录 .
- IOS的app程序中的文件目录的功能和使用详细说明
- AIR文件操作:使用文件对象操作文件和目录 .
- winform写的搜索文件目录小程序
- C#使用单例模式类获取本地程序目录下XML文件中的配置信息
- 在活动目录上使用csvde导入csv文件批量创建域用户
- 【练习题】 使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件,并写入1990
- 一个使用多线程删除指定目录及子目录下所有指定文件的Java程序(源码)
- 使用lua代码创建文件夹,解压zip文件到指定目录(亲测可用)
- 搜索文件-读目录的使用
- 在当前程序目录下创建错误日记文件
- AIR文件操作(二):使用文件对象操作文件和目录
- 使用BufferedReader在本地硬盘创建文件,写入内容,然后读出打印的一段小程序!
- 习题13:编写程序,使用File类实现删除当前目录下的所有文件。
- shell脚本使用ssh命令连接主机,自动创建目录,分发程序,执行命令
- LINUX下目录遍历搜索文件程序,支持嵌套目录
- 该文件没有程序与之关联来运行该操作。请在控制面板的目录选项中创建关联 解决代码
- 创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放。一个滑动条用来控制视频播放位置,以10为步长跳进。另一个滑动条用来控制停止/播放
- AIR-文件操作:使用文件对象操作文件和目录