HarmonyOS 获取app的应用缓存数据,调用清除缓存后,再次获取数据大小不变?

有个需求,就是显示app的应用缓存数据大小,点击清除;

清除代码如下:(清除后,获取cache的文件大小还是没变)

clearCacheData() {
  const context: Context = getContext(this);
  let cacheDir = context.cacheDir
  let filenames: string[] = fs.listFileSync(cacheDir)
  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.unlinkSync(dirPath)
      }
    } catch (e) {
      LogUtil.e(TAG, JSON.stringify(e))
    }
  }
}
阅读 500
1 个回答

可以尝试下fs.rmdir(getContext(this).cacheDir); 试试这个API直接删除缓存目录,不仅仅包含自己存储的数据,以及web异步加载网页的缓存等等

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏