HarmonyOS如何获取app缓存的文件大小(图片、文件、其他一些文件等),显示xxMB

如何获取app缓存的文件大小(图片、文件、其他一些文件等),显示xxMB。同时需要清除缓存的功能。点击后一键清除。

HarmonyOS
2024-09-09 12:10:31
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

获取文件大小可以使用fs.lstatSync(filePath).size,可参考文档https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fslstatsync

清除文件缓存,需要调用context的cacheDir获取缓存,然后调用系统文件fs接口,判断是文件或者文件夹,再分别消除缓存参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsrmdirsync

import fs from '@ohos.file.fs'; 
import { Context } from '@kit.AbilityKit'; 
import { BusinessError } from '@ohos.base'; 
clearCache() { 
  const context: Context = getContext(this); 
  let cacheDir = context.cacheDir 
  fs.listFile(cacheDir).then((filenames) => { 
    for (let i = 0;i < filenames.length; i++) { 
      let dirPath = cacheDir+filenames[i] 
      try { 
        // 判断是否文件夹 
        let isDirectory = fs.statSync(dirPath).isDirectory() 
        if (isDirectory) { 
          fs.rmdirSync(dirPath) 
        } else { 
          fs.unlink(dirPath).then(() => { 
            console.info('remove file succeed'); 
          }).catch((err: BusinessError) => { 
            console.info("remove file failed with error message: " + err.message + ", error code: " + err.code); 
          }); 
        } 
      }catch (e) { 
        console.log(e) 
      } 
    } 
  }) 
}

参考demo:

分享
微博
QQ
微信
回复
2024-09-09 16:28:20
相关问题
如何获取一些应用开发必要信息
244浏览 • 1回复 待解决
有谁知道如何获取文件大小
1050浏览 • 1回复 待解决
HarmonyOS 使用Navigation一些疑问
168浏览 • 1回复 待解决
求大佬告知如何读取文件大小
1644浏览 • 1回复 待解决
如何获取profile内文件
715浏览 • 1回复 待解决
关于designWidth一些问题
153浏览 • 1回复 待解决
ArkUI中如何获取mp4文件图片?
5226浏览 • 1回复 待解决