0

我想在 actionscript 中加载一个目录。为此,我使用 File 类,但遗憾的是它不起作用。

这就是我所做的。首先,我使用以下代码在 applicationStorageDirectory 中创建了目录:

var root:File = File.applicationStorageDirectory.resolvePath(UIDUtil.createUID());
root.createDirectory();

之后,我调度一个事件,以便应用程序将一些文件复制到该文件夹​​中。为此,我使用 File.copyToAsync 方法(有效,所以这不是问题)。当所有文件都复制到该目录时,我尝试再次使用 File 调用加载该目录。我想这样做的原因是,我需要将内容/数据作为字节数组。File 类的 data 属性只有在之前调用 load 方法成功时才会设置。

由于该目录位于应用程序存储目录中(文件对象的 url 属性具有以下内容:app-storage:/FF011DBC-2E92-46A8-D5F8-29FE1DD8FA7A)我认为只需调用加载方法即可。我错了......虽然该方法的文档说我可以在应用程序在 AIR 中运行并且要加载的文件在应用程序沙箱内时调用该方法,但我收到以下错误:

Error #2044: Unhandled IOErrorEvent:. text=Error #2038: File I/O Error.
at flash.filesystem::File/resolveComponents()
at flash.filesystem::File/resolvePath()
    ...

你有什么想法可能是错的吗?甚至可以使用 File 类加载目录吗?还是因为文件对象中的 isDirectory 标志设置为 true 而发生该错误?

亲切的问候马库斯

4

1 回答 1

0

我相信 a File,当指向一个目录时,不包含其中包含的文件的数据。您必须使用File.getDirectoryListing()循环遍历文件夹中的所有文件,并将它们的字节分别附加到 ZIP 存档中。不要忘记检查您是否遇到子目录...

您可以查看此链接以获取有关如何执行此操作的示例。

于 2012-11-22T22:00:21.243 回答