从本机代码统一访问文件

时间:2013-06-26 08:18:52

标签: android android-ndk native-activity

我的应用程序有两个数据源:标准资源文件夹和下载文件。现在我使用AAssetManager_openAAsset_read等访问资产(来自C ++代码)。我使用旧的fopenfread等从下载的文件中读取数据。是否可以使用fopenfread内容以统一方式访问所有数据?换句话说,我可以改变

AAssetManager* assetManager = g_state->activity->assetManager;
AAsset* asset = AAssetManager_open(assetManager, filename, AASSET_MODE_UNKNOWN);
int ret = AAsset_read(asset, buf, size);

char *filenameFull = SomehowGetFullPathToAssetsFile(filename);
FILE *fp = fopen(filenameFull, "rb");
int ret = fread(buf, size, 1, fp);

1 个答案:

答案 0 :(得分:2)

简短回答:不。

答案很长:不,你不能以统一的方式访问它们,因为资产存放在你的APK文件中,而不是普通的文件系统。一种解决方法可能是在设置/初始化阶段将资源提取到文件系统,然后在那之后使用它们。