博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios swift 计算文件夹大小以及清除缓存文件
阅读量:4957 次
发布时间:2019-06-12

本文共 2251 字,大约阅读时间需要 7 分钟。

////  XCache.swift//  UITablViewTest////  Created by Marcio on 2017/2/14.//  Copyright © 2017年 Marcio. All rights reserved.//import UIKitclass XCache: NSObject {        /**     * 读取缓存大小     */    static func returnCacheSize() -> String {        return String(format: "%.2f",XCache.forderSizeAtPath(folderPath: NSHomeDirectory()))    }        /**     * 清除缓存 自己决定清除缓存的位置     */    static func cleanCache(competion:()->Void) {        XCache.deleteFolder(path: NSHomeDirectory() + "/Documents")        XCache.deleteFolder(path: NSHomeDirectory() + "/Library")        XCache.deleteFolder(path: NSHomeDirectory() + "/tmp")        competion()    }    /**     * 删除单个文件     */    static func deleteFile(path: String) {        let manage = FileManager.default        do {            try manage.removeItem(atPath: path)        } catch {                    }    }        static func deleteFolder(path: String) {        let manage = FileManager.default        if !manage.fileExists(atPath: path) {        }        let childFilePath = manage.subpaths(atPath: path)        for path_1 in childFilePath! {            let fileAbsoluePath = path+"/"+path_1            XCache.deleteFile(path: fileAbsoluePath)        }    }        /**     * 计算单个文件的大小     */    static func returnFileSize(path:String) -> Double {        let manager = FileManager.default        var fileSize:Double = 0        do {            let attr = try manager.attributesOfItem(atPath: path)            fileSize = Double(attr[FileAttributeKey.size] as! UInt64)            let dict = attr as NSDictionary            fileSize = Double(dict.fileSize())        } catch {            dump(error)        }        return fileSize/1024/1024    }        /**     * 遍历所有子目录, 并计算文件大小     */    static func forderSizeAtPath(folderPath:String) -> Double {        let manage = FileManager.default        if !manage.fileExists(atPath: folderPath) {            return 0        }        let childFilePath = manage.subpaths(atPath: folderPath)        var fileSize:Double = 0        for path in childFilePath! {            let fileAbsoluePath = folderPath+"/"+path            fileSize += XCache.returnFileSize(path: fileAbsoluePath)        }        return fileSize    }}

 

转载于:https://www.cnblogs.com/caicaige/p/6402303.html

你可能感兴趣的文章
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>