Meine Anwendung verfügt über zwei Datenquellen: Standard-Assets-Ordner und heruntergeladene Datei. Jetzt greife ich mit auf Assets (aus C ++ - Code) zu AAssetManager_open
, AAsset_read
usw. Und ich lese Daten aus heruntergeladenen Dateien mit guten alten fopen
, fread
usw. Ist es möglich, mit auf einheitliche Weise auf alle Daten zuzugreifen? fopen
, fread
Zeug? Mit anderen Worten, kann ich mich ändern?
AAssetManager* assetManager = g_state->activity->assetManager;
AAsset* asset = AAssetManager_open(assetManager, filename, AASSET_MODE_UNKNOWN);
int ret = AAsset_read(asset, buf, size);
zu
char *filenameFull = SomehowGetFullPathToAssetsFile(filename);
FILE *fp = fopen(filenameFull, "rb");
int ret = fread(buf, size, 1, fp);
Antworten:
2 für die Antwort № 1Kurze Antwort: Nein.
Lange Antwort: Nein, Sie können nicht einheitlich darauf zugreifen, da sich die Assets in Ihrer APK-Datei und nicht in einem normalen Dateisystem befinden. Eine Problemumgehung besteht darin, Ihre Ressourcen in einer Setup- / Initialisierungsphase in das Dateisystem zu extrahieren und sie anschließend von dort aus zu verwenden .