1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- const MAX_SIZE = 10400000;
- let wholeSize = 0;
- setTimeout(() => {
- wx.getSavedFileList({
- success: savedFileInfo => {
- let {fileList} = savedFileInfo;
- !!fileList && fileList.forEach(item => {
- wholeSize += item.size;
- });
- // console.log(wholeSize, '总大小');
- }
- });
- });
- export default class FileSaveManager {
- constructor() {
- }
- static set(msg, localPath) {
- wx.setStorage({key: msg.saveKey, data: localPath})
- }
- static get(msg) {
- return wx.getStorageSync(msg.saveKey);
- }
- static saveFileRule({tempFilePath, success, fail}) {
- wx.getFileInfo({
- filePath: tempFilePath,
- success: tempFailInfo => {
- let tempFileSize = tempFailInfo.size;
- // console.log('本地临时文件大小', tempFileSize);
- if (tempFileSize > MAX_SIZE) {
- !!fail && fail('文件过大');
- return;
- }
- wx.getSavedFileList({
- success: savedFileInfo => {
- let {fileList} = savedFileInfo;
- console.log('文件列表', fileList);
- if (!fileList) {
- !!fail && fail('获取到的fileList为空,请检查你的wx.getSavedFileList()函数的success返回值');
- return;
- }
- //这里计算需要移除的总文件大小
- let sizeNeedRemove = wholeSize + tempFileSize - MAX_SIZE;
- if (sizeNeedRemove >= 0) {
- //按时间戳排序,方便后续移除文件
- fileList.sort(function (item1, item2) {
- return item1.createTime - item2.createTime;
- });
- let sizeCount = 0;
- for (let i = 0, len = fileList.length; i < len; i++) {
- // console.log('移除的文件1', sizeCount);
- if ((sizeCount += fileList[i].size) >= sizeNeedRemove) {
- for (let j = 0; j < i; j++) {
- // console.log('移除的文件2', fileList[j].filePath);
- wx.removeSavedFile({
- filePath: fileList[j].filePath,
- success: function () {
- wholeSize -= fileList[j].size;
- // console.log('移除成功', wholeSize);
- }
- });
- }
- break;
- }
- }
- }
- wx.saveFile({
- tempFilePath: tempFilePath,
- success: res => {
- wholeSize += tempFileSize;
- typeof success === "function" && success(res.savedFilePath);
- },
- fail: fail
- });
- },
- fail: fail
- });
- }
- });
- }
- }
|