Files
2026-09-16 14:07:40 +08:00

39 lines
1.1 KiB
Plaintext
Vendored

#if DL_PLATFORM == DL_PLATFORM_ANDROID
if(str[0] != '/')
{// 不是绝对路径,则读assets
AAsset* asset = AAssetManager_open(
g_android->_app->activity->assetManager,
str.data(), AASSET_MODE_BUFFER);
if (!asset)
{
log_err("AAssetManager_open失败:{}", str);
return {};
}
Buffer buf;
auto size = AAsset_getLength(asset);
buf.resize(size);
int size_read = AAsset_read(asset, buf.data(), size);
AAsset_close(asset);
if (size_read < size)
{
log_err("AAsset_read失败:{}", str);
return {};
}
// 保存到外部存储
std::string str_temp = PathStorage() + str;
File::CreateFolder(File::GetFilePath(str_temp));
std::ofstream ofs;
ofs.open(str_temp);
ofs.write((char*)buf.data(), buf.size());
ofs.close();
log_info("安卓从assets创建文件:{} -> {}", path_name, str_temp);
std::ifstream ret;
ret.open(str_temp, is_binary ? (std::ifstream::binary | std::ifstream::in) : std::ifstream::in);
return ret;
}
#endif