Swift 文件緩存處理

創(chuàng)建CacheManager 管理文件緩存

1.0 提供readCacheSize()和cleanCache()方法分別為讀取和清除文件緩存

readCacheSize()讀取緩存

static func readCacheSize()->String {
        return String(format: "%.2f",forderSizeByDocumentPath(NSHomeDirectory()))
    }

2.1 forderSizeByDocumentPath()遍歷所有子目錄 并計(jì)算文件大小

 static func forderSizeByDocumentPath(forderPath: String) -> Double {
        let manage = NSFileManager.defaultManager()
        if !manage.fileExistsAtPath(forderPath) {
            print("文件不存在")
        }
        let subFilePath = manage.subpathsAtPath(forderPath)!
        var fileSize:Double = 0
        for path in subFilePath {
            let fileAbsoluePath = forderPath + "/" + path
            fileSize += retureFileSize(fileAbsoluePath)
        }
        return fileSize
    }

2.2 retureFileSize()計(jì)算單個(gè)文件大小

static func retureFileSize(path:String)-> Double{
        let manage = NSFileManager.defaultManager()
        var fileSize: Double = 0.0
        do{
            fileSize = try manage.attributesOfItemAtPath(path)["NSFileSize"] as! Double
        }catch{
            print("未知錯(cuò)誤")
        }
        return fileSize/1024/1024
    }

cleanCache()清除緩存

static func cleanCache(competion:()->Void){
        CacheManager.deleteFolder(NSHomeDirectory()+"/Documents")
        CacheManager.deleteFolder(NSHomeDirectory()+"/Library")
        CacheManager.deleteFolder(NSHomeDirectory()+"/tmp")
        competion()
    }

3.1 deleteFolder()刪除文件夾下的所有文件

static func deleteFolder(folderPath:String){
        let manage = NSFileManager.defaultManager()
        if !manage.fileExistsAtPath(folderPath) {
        }
        let childFilePath = manage.subpathsAtPath(folderPath)
        for path in childFilePath!{
            let fileAbsoluePath = folderPath+"/"+path
            CacheManager.deleteFile(fileAbsoluePath)
        }
    }

3.2 deleteFile()刪除單個(gè)文件

static func deleteFile(path:String){
        let manage = NSFileManager.defaultManager()
        do{
            try manage.removeItemAtPath(path)
        }catch{
            
        }
    }

結(jié)語

項(xiàng)目鏈接:文件緩存

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,663評(píng)論 19 139
  • 一、簡(jiǎn)介 Ehcache是一個(gè)用Java實(shí)現(xiàn)的使用簡(jiǎn)單,高速,實(shí)現(xiàn)線程安全的緩存管理類庫,ehcache提供了用內(nèi)...
    小程故事多閱讀 44,491評(píng)論 9 59
  • 個(gè)人學(xué)習(xí)批處理的初衷來源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,993評(píng)論 0 11
  • 其實(shí),很多的中文成語我們能夠在英文里找到對(duì)應(yīng)的版本。當(dāng)你和老外交流時(shí),如果能夠脫口而出一些英文成語,相信你一定會(huì)得...
    學(xué)英語的那些事閱讀 829評(píng)論 0 4
  • 界面中看得到的東西就是CALayer 我們見的最多的就是 UIView, 但是每個(gè) UIView 中可以看得見的東...
    Laughingg閱讀 351評(píng)論 0 0

友情鏈接更多精彩內(nèi)容