0

在 Android 的 flex 应用程序首次启动(或删除应用程序数据后)上,Flex 是否处理将资产文件从 assets/ 文件夹复制到 File.applicationStorageDirectory,或者开发人员负责检查文件是否存在,如果不存在,则从 assets/ 复制文件到 File.applicationStorageDirectory?

如果这没有得到答复,我不介意进一步调查并自己回答,我只是想知道是否有人会记住这一点。谢谢!

4

2 回答 2

1

你使用 Flash Builder 吗?

在它的菜单中有 Project -> Export Release Build... -> Next -> Package Contents,您可以通过切换复选框来添加资产。

于 2013-08-17T14:33:31.163 回答
0

好的,这里是:Flex不会处理这个问题——我们必须手动完成。我将使用以下代码来确保我的文件存在于 ApplicationStorageDirectory 中:

import flash.filesystem.File;
public const FNAME:String = "myDBFileName.db";

private var dbFile:File = File.applicationStorageDirectory.resolvePath(FNAME);

// 'original', initial file
private var originalDB:File =File.applicationDirectory.resolvePath(FNAME);      

public function MyOpenFile(){

if (!dbFile.exists){ 
    // It does not exist in AppStorageDirectory, so copy it from app instalation directory
    originalDB.copyTo(dbFile);
}
    // from here on, we can safely use dbFile.
}

因此,在第一次启动时(以及在“删除应用程序数据”之后),应用程序会将原始文件复制到 ApplicationStorageDirectory,并从那里继续使用它。

于 2013-08-15T19:41:17.013 回答