import UIKit
import WebKit
//清理缓存工具类
class CleanCacheUtils: NSObject {
//清理所有缓存
class func clearAllCache() {
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! as NSString).appending("/\(file)")
if FileManager.default.fileExists(atPath: path) {
do {
try FileManager.default.removeItem(atPath: path)
} catch {}
}
}
}
//清理webView缓存
class func clearBrowserCache() {
let dataStore = WKWebsiteDataStore.default()
dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), completionHandler: { (records) in
for record in records{
WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {
print("清理成功\(record)")
})
}
})
}
class func sizeOfAllCache() -> String {
let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first
let fileArr = FileManager.default.subpaths(atPath: cachePath!)
var size: Double = 0
for file in fileArr! {
let path = (cachePath! as NSString).appending("/\(file)")
let floder = try! FileManager.default.attributesOfItem(atPath: path)
for (abc, bcd) in floder {
if abc == FileAttributeKey.size {
size += (bcd as AnyObject).doubleValue
}
}
}
let cache = size / 1024 / 1024
return String(format: "%.1fM", cache)
}
}