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如何清除应用缓存
148浏览 • 0回复 待解决
HarmonyOS 清除缓存功能
296浏览 • 1回复 待解决
HarmonyOS 清除Web缓存
764浏览 • 0回复 待解决
如何通过命令号清除应用缓存
2190浏览 • 1回复 待解决
HarmonyOS 如何清除Web缓存
58浏览 • 1回复 待解决
HarmonyOS web清除缓存问题
227浏览 • 1回复 待解决
flutter缓存如何清除
246浏览 • 1回复 待解决
HarmonyOS Web如何实现清除缓存
615浏览 • 1回复 待解决
HarmonyOS APP有没有清除缓存接口
456浏览 • 1回复 待解决
HarmonyOS 是否有方法可以清除缓存
36浏览 • 1回复 待解决
如何获取当前应用程序缓存目录
1989浏览 • 1回复 待解决
ets开发应用怎么退出当前应用
3800浏览 • 1回复 待解决
怎样获取当前app缓存目录?
662浏览 • 2回复 待解决
HarmonyOS 关于应用清理缓存
38浏览 • 1回复 待解决