美文网首页Swift
swift数据的缓存和清除

swift数据的缓存和清除

作者: 雨燕oc | 来源:发表于2017-03-14 17:03 被阅读16次

展示页

   @IBAction func readFileSize(_ sender: UIButton) {
        
        
        self.lable.text = XCache.returnCacheSize() + "MB"
    }
    
    @IBAction func CleanFileSize(_ sender: Any) {
        
        XCache.cleanCache { 
        self.lable.text = XCache.returnCacheSize() + "MB"
        }
    }
class XCache: NSObject {
    
    //读取文件大小
    static func returnCacheSize() ->String{

        return String(format:"%.2f" ,XCache.forderFileSize(forderpath: NSHomeDirectory()))
    }
    
    //返回文件大小
    static func returnFileSize(path:String) ->Double{
        let manger = FileManager.default
        var filesize:Double = 0
    
        do{
             filesize = try manger.attributesOfItem(atPath: path)[FileAttributeKey.size] as! Double
        } catch {
            
        }
        
        return filesize/1024/124
        
    }
    
    
    //返回子文件大小
    static func forderFileSize(forderpath:String)->Double{
        let manger = FileManager.default
        if !manger.fileExists(atPath: forderpath){
            return 0
        }
        let chiderFilePath = manger.subpaths(atPath: forderpath)
        var fileSize:Double = 0
        for path in chiderFilePath!{
            let SubFilePath = forderpath + "/" + path
            fileSize += XCache.returnFileSize(path: SubFilePath)
        }
        return fileSize
        
    }

    //清除文件
    
    static func cleanCache(competion:()->Void){
            
            XCache.deleteForderFile(forderPath: NSHomeDirectory() + "/Documents")
            
             XCache.deleteForderFile(forderPath: NSHomeDirectory() + "/tmp")
            
             XCache.deleteForderFile(forderPath: NSHomeDirectory() + "/Library")
        
        competion()
        }
    //删除文件
        static func deleteFile(path:String){
        let manage = FileManager.default
            do {
                try manage.removeItem(atPath: path)
            } catch  {   
            }    
    }
    //找到文件
    static func deleteForderFile(forderPath:String){
        let manage = FileManager.default
        if !manage.fileExists(atPath: forderPath){  
        }    
    let childFile = manage.subpaths(atPath: forderPath)
        
        for path in childFile!{
            let filePatch = forderPath + "/" + path
            XCache.deleteFile(path: filePatch)
        }
    }

}

相关文章

网友评论

    本文标题:swift数据的缓存和清除

    本文链接:https://www.haomeiwen.com/subject/ulyhnttx.html