【问题标题】:Unified access to files from native code从本机代码统一访问文件
【发布时间】:2013-06-23 06:57:33
【问题描述】:

我的应用程序有两个数据源:标准资产文件夹和下载的文件。现在我使用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);

【问题讨论】:

    标签: android android-ndk native-activity


    【解决方案1】:

    简短回答:没有。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2011-07-06
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多