初始化内容
This commit is contained in:
Vendored
+39
@@ -0,0 +1,39 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user