swift 获取app的缓存(删除缓存)

2021-11-30  本文已影响0人  不na讷

// 获取APP缓存

func getCacheSize()-> String {
    // 取出cache文件夹目录
    let cachePath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first
    // 取出文件夹下所有文件数组
    let fileArr = FileManager.default.subpaths(atPath: cachePath!)
    //快速枚举出所有文件名 计算文件大小
    var size = 0
    for file in fileArr! {
        // 把文件名拼接到路径中
        let path = cachePath! + ("/\(file)")
        // 取出文件属性
        let floder = try! FileManager.default.attributesOfItem(atPath: path)
        // 用元组取出文件大小属性
        for (key, fileSize) in floder {
            // 累加文件大小
            if key == FileAttributeKey.size {
                size += (fileSize as AnyObject).integerValue
            }
        }
    }
    let totalCache = Double(size) / 1024.00 / 1024.00
    return String(format: "%.2f", totalCache)
}

删除APP缓存

func clearCache() {
    // 取出cache文件夹目录
    let cachePath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first
    let fileArr = FileManager.default.subpaths(atPath: cachePath!)
    // 遍历删除
    for file in fileArr! {
        let path = (cachePath! as NSString).appending("/\(file)")
        if FileManager.default.fileExists(atPath: path) {
            do {
                try FileManager.default.removeItem(atPath: path)
            } catch {
            }
        }
    }
}

作者:不言弃zxf
原文链接:https://www.jianshu.com/p/57bb1c7a5872

上一篇下一篇

猜你喜欢

热点阅读