0

我必须使用 flex 读取文件夹中的文件名。但是我在代码中遇到了一些错误。文件未定义。以下代码是:

protected function myCBSelectedXMLs_changeHandler(event:IndexChangeEvent):void
                {

                try
                {
                    var fileName:String = new String();

                    if(myCBSelectedXMLs.selectedIndex == spark.components.ComboBox.CUSTOM_SELECTED_ITEM)
                        myCBSelectedXMLs.dataProvider.addItem(myCBSelectedXMLs.selectedItem);
                    Alert.show(myCBSelectedXMLs.selectedItem +" is selected", "Selection", Alert.OK);

                    var dir : File = File.desktopDirectory.resolvePath("MyFolder");
                    dir.getDirectoryListingAsync();
                    dir.addEventListener(FileListEvent.DIRECTORY_LISTING,onDirectoryListComplete);
                } 
                catch(error:Error) 
                {
                    Alert.show("error", "Selection", Alert.OK);

                }

            }
4

2 回答 2

0

我认为错误出现在下面提到的代码部分:

var dir : File = File.desktopDirectory.resolvePath("MyFolder");

dir.getDirectoryListingAsync();

检查“我的文件夹”是否存在。

正如 Sunil 所说,error.message可能会在这方面对您有所帮助。

于 2013-08-18T05:09:17.133 回答
0

File(以及整个flash.filesystem包)适用于 AIR 应用程序。你没有说你正在创建一个 AIR 应用程序,所以我猜你不是。非 AIR 应用程序不存在这些包,并且如果您设法找到正确的文件,非 AIR 应用程序将无法使用这些包。在 Web 上,Adobe 拥有极其严格的安全程序,作为开发人员,您对文件系统的访问权限绝对为零,无需用户启动该访问权限。

来自 Adob​​e 的 LiveDocs flash.filesystem(强调我的):

flash.filesystem 包包含用于访问文件系统的类。此包仅适用于在 Adob​​e AIR 中运行的内容

您可以查看FileReference哪些将允许用户选择要加载/保存的文件,但这就是您可以在那里做的事情的范围。SharedObject如果您需要保存/读取的数据很小(<100kb),您可能还想看看使用。

于 2013-08-19T18:56:32.693 回答