引擎3.2.1版本 decompressDownloadedZip这个函数是好的吗?我在使用zip更新解压提示
AssetsManagerEx : can not open downloaded zip file
Unable to decompress file
代码:
void AssetsManagerEx::decompressDownloadedZip(const std::string &customId, const std::string &storagePath) {
struct AsyncData {
std::string customId;
std::string zipFile;
bool succeed;
};
AsyncData *asyncData = new AsyncData;
asyncData->customId = customId;
asyncData->zipFile = storagePath;
asyncData->succeed = false;
std::function<void(void *)> decompressFinished = [this](void *param) {
auto dataInner = reinterpret_cast<AsyncData *>(param);
CC_LOG_DEBUG("AssetsManagerEx --- 1 \n");
if (dataInner->succeed) {
CC_LOG_DEBUG("AssetsManagerEx --- 2 \n");
fileSuccess(dataInner->customId, dataInner->zipFile);
} else {
CC_LOG_DEBUG("AssetsManagerEx --- 3 \n");
std::string errorMsg = "Unable to decompress file " + dataInner->zipFile;
// Ensure zip file deletion (if decompress failure cause task thread exit anormally)
_fileUtils->removeFile(dataInner->zipFile);
dispatchUpdateEvent(EventAssetsManagerEx::EventCode::ERROR_DECOMPRESS, "", errorMsg);
fileError(dataInner->customId, errorMsg);
}
delete dataInner;
};
AsyncTaskPool::getInstance()->enqueue(AsyncTaskPool::TaskType::TASK_OTHER, decompressFinished, (void *)asyncData, [this, asyncData]() {
// Decompress all compressed files
if (decompress(asyncData->zipFile)) {
asyncData->succeed = true;
}
_fileUtils->removeFile(asyncData->zipFile);
});
}
这里打印了 CC_LOG_DEBUG(“AssetsManagerEx — 3 \n”);