HarmonyOS 鸿蒙Next 如何使用app本地数据缓存以及清理缓存
HarmonyOS 鸿蒙Next 如何使用app本地数据缓存以及清理缓存
如何使用app本地数据缓存以及清理缓存,是否有相关文档或者现成demo
2 回复
仅使用可以参考APPStorage localStorage. set get方法
查询缓存用storageStatistics.getCurrentBundleStats()接口,可以获取缓存空间大小。
清除文件缓存:
查询缓存用storageStatistics.getCurrentBundleStats()接口, 清除文件缓存,需要调用context的cacheDir获取缓存,然后调用系统文件fs接口,判断是文件或者文件夹,再分别消除缓存。
参考文档:
文件管理:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-fileio-V5
demo如下:
import { storageStatistics } from '@kit.CoreFileKit';
import fs from '@ohos.file.fs';
import { Context } from '@kit.AbilityKit';
import { BusinessError } from '@ohos.base';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
//获取缓存
getCacheSize() {
storageStatistics.getCurrentBundleStats((error: BusinessError, bundleStats: storageStatistics.BundleStats) => {
if (error) {
console.error("getCurrentBundleStats failed with error:" + JSON.stringify(error));
} else {
let cacheSize = parseFloat((bundleStats.cacheSize / (1024*1024)).toFixed(1))
console.info('cacheSize:' + cacheSize);
}
})
}
//清理缓存
clearCache() {
const context: Context = getContext(this);
let cacheDir = context.cacheDir
fs.listFile(cacheDir).then((filenames) => {
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.unlink(dirPath).then(() => {
console.info('remove file succeed');
}).catch((err: BusinessError) => {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
});
}
}catch (e) {
console.log(e)
}
}
})
}
build() {
Column() {
Text(this.message)
.id('JSONParseModelPageHelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 如何使用app本地数据缓存以及清理缓存的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
回到顶部