获取缓存大小

前置知识:

落地代码:

  @State
  cache: string = ''

  calcCache() {
//获取当前应用的资源信息
    storageStatistics.getCurrentBundleStats()
      .then(res => {
        this.cache = (res.cacheSize / (1000 * 1000)).toFixed(2) + 'MB'
      })
  }
  
  onPageShow(): void {
    this.calcCache()
  }

清理缓存

前置知识:

  • accessSync(path: string, mode?: AccessModeType): boolean 以同步方法检查文件是否存在。
  • rmdirSync(path: string): void 以同步方法删除目录。
  • 应用有两个缓存目录,一个 entry hap的,一个应用的

实现步骤

  1. 获取上下文
  2. 获取cache目录
  3. 判断是否有该目录
  4. 删除该目录

落地代码: 

 

  clearCache() {
    const ctx = getContext()
//获取当前ability的缓存路径
    const ctxCacheDir = ctx.cacheDir
//判断是否有这个文件
    const ctxExist = fileIo.accessSync(ctxCacheDir)
    if (ctxExist) {
//清除缓存
      fileIo.rmdirSync(ctxCacheDir)
    }
//获得应用级的上下文
    const app = ctx.getApplicationContext()
//应用级的缓存目录
    const appCacheDir = app.cacheDir
//判断有无文件
    const appExist = fileIo.accessSync(appCacheDir)
    if (appExist) {
//清除缓存
      fileIo.rmdirSync(appCacheDir)
    }
    promptAction.showToast({ message: '清理完毕' })
    this.calcCache()
  }

 适用HarmonyOS NEXT / API12或以上版本 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐