本地缓存获取和删除

来源:互联网 发布:cntv网络电视台 编辑:程序博客网 时间:2024/06/05 18:41

//
// ViewController.swift
// NSFileManager
//
// Created by 王木木 on 2016/12/16.
// Copyright © 2016年 王木木. All rights reserved.
//

import UIKit

enum TSSizeType: Float {

case KB = 1_024case MB = 1_048_576

}

class ViewController: UIViewController {

override func viewDidLoad() {    super.viewDidLoad()    // Do any additional setup after loading the view, typically from a nib.    let caches = NSSearchPathDirectory.CachesDirectory    let cachePath = NSSearchPathForDirectoriesInDomains(caches,                                                        NSSearchPathDomainMask.UserDomainMask,                                                        true).first    guard let path = cachePath else { return }    NSFileManager.defaultManager().fileSize(path)}override func didReceiveMemoryWarning() {    super.didReceiveMemoryWarning()    // Dispose of any resources that can be recreated.}

}

extension NSFileManager {

func fileSize(filePath: String) -> Float {    let _files = NSFileManager.defaultManager().subpathsAtPath(filePath)    guard let files = _files else { return 0 }    guard let size = (try? files.map { (filePath as NSString).stringByAppendingPathComponent($0) }        .flatMap(getSizeAttribute)        .reduce(0, combine: +)) else { return 0 }    let allSize = Float(size) / TSSizeType.MB.rawValue    return allSize}func deleteTheLocalCache(path: String) -> Bool {    let fileArray = NSFileManager.defaultManager().subpathsAtPath(path)    guard let fileArr = fileArray else { return false }    _ = fileArr.map {        return path.stringByAppendingString("/\($0)")        }.filter {            NSFileManager.defaultManager().fileExistsAtPath($0)        }.map {            try? NSFileManager.defaultManager().removeItemAtPath($0)    }    return true}

}

func getSizeAttribute(filePath: String) throws -> Float {

let attributes = try NSFileManager.defaultManager().attributesOfItemAtPath(filePath)return attributes[NSFileSize] as? Float ?? 0

}

0 0
原创粉丝点击