const recoDir = wx.env.USER_DATA_PATH + '/recoDir/',
FSM = wx.getFileSystemManager();
downloadFile(url){
let _this = this;
try{
FSM.accessSync(recoDir);
FSM.rmdirSync(recoDir,true);
FSM.mkdirSync(recoDir);
} catch(err) {
FSM.mkdirSync(recoDir);
}
return new Promise((resolve,reject) => {
var filename = new Date().getTime();
wx.downloadFile({
url: url,
success(file){
const fileType = url.split('.').pop();
FSM.saveFileSync(file.tempFilePath,recoDir + filename);// 保存文件到本地
// console.log(wx.canIUse('FileSystemManager.readZipEntry'));
if (fileType === 'zip') {
const version = wx.getSystemInfoSync().SDKVersion;
console.log(version)
if (_this.compareVersion(version,'2.17.3') >= 0) {
FSM.readZipEntry({
filePath: recoDir + filename,
entries: 'all',
success(data){
resolve(data.entries.filename.data);// data.entries中包含多个文件的数据,.filename是筛选出其中某个文件的数据
}
})
} else {
const newName = new Date().getTime();
FSM.unzip({
zipFilePath: recoDir + filename,
targetPath: recoDir + newName,
success(d){
// const list = FSM.readdirSync(recoDir);
// const list2 = FSM.readdirSync(recoDir + newName);
// console.log('list',list,list2)
const data = FSM.readFileSync(recoDir + newName + '/idx.data');// idx.data是解压缩文件夹中的某个文件名
resolve(data);
},fail(err){
console.log('err',err)
}
});
}
} else {
const data = FSM.readFileSync(recoDir + filename);
resolve(data);
}
},
fail(err){
console.log('文件下载失败')
reject(err);
}
})
})
},
compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
const len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i])
const num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
},
微信小程序下载读取文件内容
最新推荐文章于 2024-07-26 18:00:00 发布