HarmonyOS怎么清除当前应用的缓存

获取了当前应用的缓存大小,请问怎么清除?使用的StorageStatistics.getCurrentBundleStats()方法获取的cacheSize。

HarmonyOS
2024-08-12 15:48:18
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

首先查询缓存用storageStatistics.getCurrentBundleStats()接口,再清除文件缓存,需要调用context的cacheDir获取缓存,然后调用系统文件fs接口,判断是文件或者文件夹,再分别消除缓存。

参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs-0000001820881405#ZH-CN_TOPIC_0000001857877273__fsrmdirsync

清理demo:

import fs from ‘@ohos.file.fs’; 
let cacheDir = context.cacheDir; 
@Entry 
@Component 
struct Clear_cache { 
  clearCache() { 
    // let cacheDir = getContext(this).cacheDir 
    // fs.rmdirSync(cacheDir) 
    // console.log(“delete !!!”) 
 
    fs.listFile(cacheDir).then((filenames) => { 
      for (let i = 0;i < filenames.length; i++) { 
        // let dirPath = cacheDir+filenames[i] 
        let dirPath = ${cacheDir}/${filenames[i]} 
        // 判断是否文件夹 
        let isDirectory 
        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”); 
          }).catch((err) => { 
            console.info("remove file failed with error message: " + err.message + ", error code: " + err.code); 
          }); 
        } 
      } 
 
    }) 
  } 
}
分享
微博
QQ
微信
回复
2024-08-13 12:10:31
相关问题
HarmonyOS 清除Web缓存
232浏览 • 0回复 待解决
如何通过命令号清除应用缓存
1713浏览 • 1回复 待解决
HarmonyOS Web如何实现清除缓存
144浏览 • 1回复 待解决
HarmonyOS APP有没有清除缓存接口
101浏览 • 1回复 待解决
如何获取当前应用程序缓存目录
1618浏览 • 1回复 待解决
ets开发应用怎么退出当前应用
3454浏览 • 1回复 待解决
怎样获取当前app缓存目录?
434浏览 • 2回复 待解决
鸿蒙获取当前应用内存
5716浏览 • 1回复 待解决
DevEco有没有清理调试应用缓存功能
3564浏览 • 1回复 待解决
HarmonyOS 路径规划如何清除路线
119浏览 • 1回复 待解决
Gradle依赖缓存被损坏怎么办?
13631浏览 • 5回复 待解决