HarmonyOS 清空缓存的文档或者代码

HarmonyOS
2024-12-25 16:17:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

清理缓存参考代码:

使用fs这个api的rmdirSync,直接删除文件即可。

清理缓存demo:

import fs from '@ohos.file.fs';
@Entry
@Component
struct Clear_cache {
  clearCache() {
    let cacheDir = getContext(this).cacheDir
    fs.listFile(cacheDir).then((filenames) => {
      for (let i = 0;i < filenames.length; i++) {
        let dirPath = `${cacheDir}/${filenames[i]}`
        // 判断是否文件夹
        let isDirectory = false
        try {
          isDirectory = fs.statSync(dirPath).isDirectory()
        }
        catch (e) {
          console.log(e)
        }
        if (isDirectory) {
          fs.rmdirSync(dirPath)
        } else {
          fs.unlink(dirPath).then(() => {
            console.info('remove file succeed');
          })
        }
      }

    })
  }
}

cacheSize包含以下几个目录,仅清理应用沙箱路径下的cache还显示有大小是正常规格。

/data/storage/el1/base/cache

/data/storage/el1/base/haps/entry/cache

/data/storage/el2/base/cache

/data/storage/el2/base/haps/entry/cache

获取这4个路径的方式如下:

let moduleContext: common.Context;
moduleContext = context.createModuleContext('entry');
///data/storage/el2/base/cache
let cachePathOne = moduleContext.cacheDir;
///data/storage/el2/base/haps/entry/cache
let cachePathTwo = context.cacheDir;
//切换加密等级
moduleContext.area = contextConstant.AreaMode.EL1;
///data/storage/el1/base/cache
let cachePathThree = moduleContext.cacheDir;
context.area = contextConstant.AreaMode.EL1;
///data/storage/el1/base/haps/entry/cache
let cachePathFour = context.cacheDir;
//切换回默认加密等级
moduleContext.area = contextConstant.AreaMode.EL2;
分享
微博
QQ
微信
回复
2024-12-25 17:59:58
相关问题
Image组件缓存清空问题
4247浏览 待解决
HarmonyOS sdk里sky_engine缓存代码问题
186浏览 • 1回复 待解决
有没有低代码相关文档可以阅读?
3077浏览 • 1回复 待解决
HarmonyOS 如何清空canvas里绘制内容
222浏览 • 1回复 待解决
HarmonyOS router.getParams()清空问题
456浏览 • 1回复 待解决