在微信小游戏里,FileSystemManager.unzip, FileSystemManager.saveFile,都能正常使用。
但是在QQ小游戏里,使用 FileSystemManager.unzip正常,FileSystemManager.saveFile就不正常了。
我的代码是,先从云端下载zip,然后 FileSystemManager.unzip 到 env.USER_DATA_PATH。
然后再用 FileSystemManager.saveFile 存一个 md5 的文本文件 到 env.USER_DATA_PATH。
如此往复。
刚开始几个都是没问题的,直到某个阶段之后,zip 还能下载并解压,可是 FileSystemManager.saveFile 就不行了,
提示 空间不足!
具体空间限制,在报错中没有打印,不知道多大。
可问题是,我这些 zip 都很大,加起来总共有 100+mb。而一个 md5 文件才 32b。
只要我不存 md5 文本文件,继续下载并解压全部的 zip 到 env.USER_DATA_PATH,都是没问题的。
请问这是什么原因呢?
部分代码:
下载并解压zip:
function downloadAndUnzip(fileID, unzipPath, onSuccess) {
return qq.cloud.downloadFile{
fileID: fileID,
success: (res)=>{
qq.getFileSystemManager().unzip({
zipFilePath: res.tempFilePath,
targetPath: unzipPath,
success: onSuccess,
fail: (res)=>{
console.error("解压失败 " + fileID);
console.error(res.errMsg);
}
});
},
fail: (res)=>{
console.error("下载包失败 " + fileID);
console.error(res.errMsg);
}
});
}
保存md5文本文件:
function saveFile(tempFilePath, filePath, onSuccess) {
qq.getFileSystemManager.saveFile{
tempFilePath: tempFilePath,
filePath: filePath,
success: onSuccess,
fail: (res)=>{
console.error("保存文件失败 " + filePath);
console.error(res.errMsg);
}
});
}
建议查看下QQ小游戏开发文档,相关问题可通过此入口进行反馈哈。