# UniCacheClean **Repository Path**: scenario-samples/uni-cache-clean ## Basic Information - **Project Name**: UniCacheClean - **Description**: uni-app清理缓存示例是实用工具类应用的高频使用场景之一,例如用户在下载文件之后,需要通过清理缓存来释放空间。 本示例通过删除cache目录的文件实现清理缓存。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # uni-app清理缓存示例 ## 场景介绍 uni-app清理缓存示例是实用工具类应用的高频使用场景之一,例如用户在下载文件之后,需要通过清理缓存来释放空间。 本示例通过删除cache目录的文件实现清理缓存。 ## 效果预览 ## 实现思路 1. 通过getHostContext()和getApplicationContext()获取所有缓存路径,存储至paths数组。 ```uts function getCachePaths() : Array { let paths : Array = []; let applicationContext = UTSHarmony.getUIAbilityContext().getApplicationContext(); let context = UTSHarmony.getCurrentWindow().getUIContext().getHostContext(); // 缓存路径/data/storage/el2/base/cache paths.push(applicationContext.cacheDir); // 缓存路径/data/storage/el1/base/cache applicationContext.area = contextConstant.AreaMode.EL1; paths.push(applicationContext.cacheDir); if (context) { // 缓存路径/data/storage/el2/base/haps/entry/cache paths.push(context.cacheDir); // 缓存路径/data/storage/el1/base/haps/entry/cache context.area = contextConstant.AreaMode.EL1; paths.push(context.cacheDir); } return paths; } ``` 2. 清理缓存路径下的文件。 ```uts export function clearCacheForDir(cacheDir : string) : void { fs.listFile(cacheDir).then((filenames) => { for (let i = 0; i < filenames.length; i++) { let dirPath = cacheDir + '/' + filenames[i] // 判断是否文件夹 let isDirectory : boolean = false try { isDirectory = fs.statSync(dirPath).isDirectory() } catch (e) { console.error(e) } if (isDirectory) { fs.rmdirSync(dirPath) } else { fs.unlink(dirPath).then(() => { console.info('remove file succeed'); }).catch((err : BusinessError) => { console.error(`remove file failed with error message: ${err.message}, error code: ${err.code}`); }); } } }) } ``` ## 约束与限制 * 本示例支持API Version 20 Release及以上版本。 * 本示例支持HarmonyOS 6.0.0 Release SDK及以上版本。 * 本示例需要使用HBuilderX 4.87、DevEco Studio 6.0.0 Release及以上版本进行编译运行。 ## 工程目录 ``` ├─App.vue // 应用配置,用来配置App全局样式以及监听、应用生命周期 ├─index.html // 用于web加载渲染的root节点 ├─main.js // Vue初始化入口文件 ├─manifest.json // 应用相关配置 ├─pages.json // 配置页面路由、导航条、选项卡等页面类信息 ├─uni.scss // 内置的常用样式变量 ├─harmony-configs // harmony工程定制化配置目录,每次编译执行HBuilderX都会检查这个目录,如果目录不存在则会自动创建。 │ └─entry │ └─src │ └─main │ └─module.json5 // 应用配置文件,配置requestPermissions等信息 ├─pages │ └─index │ └─index.vue // 首页 │ ├─static // 静态资源文件 └─uni_modules // 插件目录,用于存放uni-app的插件 ``` ## 参考文档 [应用缓存清除](https://developer.huawei.com/consumer/cn/doc/architecture-guides/cache_clean-0000002231963970)