uniapp加入了广告之后,点击广告下载的apk使应用占用的存储越来越高,这些文件如何删除。
没有MAC,所以下面仅介绍 Android 环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// plus.io.requestFileSystem 请求本地文件系统对象 
// plus.io.PUBLIC_DOWNLOADS 应用公共下载目录,多应用时都可读写,常用于保存下载文件
// 详细介绍请查看官方文档
plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(fs) {

// 对应Android系统应用外部存储目录(通常为“/sdcard/Android/data/%PACKAGENAME%/”,其中%PACKAGENAME%是程序的包名)下的"downloads"目录
const path = fs.root.fullPath
// 查看手机文件夹发现,广告apk是在 “/sdcard/Android/data/%PACKAGENAME%/files”文件夹下面,
const apkFilePath = path.replace('downloads/', 'files/')
// 调用删除方法
clearFiles(apkFilePath)

function clearFiles (apkFilePath) {
// resolveLocalFileSystemURL 通过URL参数获取目录对象或文件对象
plus.io.resolveLocalFileSystemURL(apkFilePath, function(entry){
// createReader 创建目录读取对象
const directoryReader = entry.createReader();
// 获取当前目录中的所有文件和子目录
directoryReader.readEntries(function(entries) {
// 遍历
entries.map(readEntry => {
if (readEntry.isFile) {
// 此处可以加 判断,比如 判断文件是 apk 等
const fileName = readEntry.name
const filePath = readEntry.fullPath
plus.io.resolveLocalFileSystemURL(filePath, function(file) {
file.remove() // 删除文件
})
} else if (readEntry.isDirectory) {
// 如果是目录 递归
clearFiles(readEntry.fullPath)
}
})
}, function(e) {
console.lo('error', e)
})
}, function(e){
console.lo('error', e)
})
}
},function(e) {
console.lo('error', e)
});