iOS - 清理缓存

// 显示缓存大小
func fileSizeOfCache()-> Int {

    // 1. 取出cache文件夹目录 缓存文件都在这个目录下
    let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first

    // 2. 取出文件夹下所有文件数组
    let fileArr = FileManager.default.subpaths(atPath: cachePath!)

    // 3. 快速枚举出所有文件名 计算文件大小, 单位是字节
    var size = 0
    for file in fileArr! {
        // 3.1 把文件名拼接到路径中
        let path = cachePath! + "/\(file)"
        // 3.2 取出文件属性
        let floder = try! FileManager.default.attributesOfItem(atPath: path)
        // 3.3 用元组取出文件大小属性
        for (abc, bcd) in floder {
            // 累加文件大小
            if abc == FileAttributeKey.size {
                size += (bcd as AnyObject).integerValue
            }
        }
    }
    // 单位换算成 MB
    let sizeM = size / 1024 / 1024
    return sizeM
}
// 清理缓存
func clearCache() {
    // 取出cache文件夹目录 缓存文件都在这个目录下
    let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first

    // 取出文件夹下所有文件数组
    let fileArr = FileManager.default.subpaths(atPath: cachePath!)

    // 遍历删除
    for file in fileArr! {

        let path = cachePath! + "/\(file)"
        if FileManager.default.fileExists(atPath: path) {
            do {
                try FileManager.default.removeItem(atPath: path)
            } catch {}
        }
    }
}

猜你喜欢

转载自blog.csdn.net/u012678352/article/details/54600790