// 計(jì)算目錄大小 ? ?速度稍快一點(diǎn)
func folderSizeAtPath(_ path:String) -> Float{? ? ??
? let fileManager = Foundation.FileManager.default;? ? ??
? var folderSize:Float = 0? ? ??
? if fileManager.fileExists(atPath: path){? ? ? ? ? ?
?let childerFiles = fileManager.subpaths(atPath: path)? ? ? ? ? ?
?for fileName in childerFiles!? {? ? ? ? ? ? ? ??
let absolutePath = (path as NSString).appendingPathComponent(fileName);? ? ? ? ?
?? ? ? var statadd = stat.init()? ? ? ? ??
? ? ? let cs = (absolutePath as NSString).utf8String? ? ? ? ? ? ?
?? var buffer = UnsafeMutablePointer(mutating: cs)
stat(buffer, &statadd)
TLog.v(statadd.st_size)
//folderSize += self.fileSizeAtPath(absolutePath)
folderSize += Float(statadd.st_size) / 1024.0 / 1024.0
}
}
return folderSize;
}
// 計(jì)算目錄大小 速度一般
func folderSizeAtPath(_ path:String) -> Float{
let fileManager = Foundation.FileManager.default;
var folderSize:Float = 0
if fileManager.fileExists(atPath: path){
let childerFiles = fileManager.subpaths(atPath: path)
for fileName in childerFiles!? {
let absolutePath = (path as NSString).appendingPathComponent(fileName);
folderSize += self.fileSizeAtPath(absolutePath)
}
}
return folderSize;
}
// 計(jì)算單個(gè)文件大小
func fileSizeAtPath(_ path:String) -> Float{
let fileManager = Foundation.FileManager.default;
let dict:NSDictionary;
if fileManager.fileExists(atPath: path) {
do {
dict = try fileManager.attributesOfItem(atPath: path) as NSDictionary;
let size:UInt64 = dict.fileSize();
return Float(size) / 1024.0 / 1024.0;
}
catch let error {
TLog.v(error);
}
}
return 0.0
}
文件內(nèi)容很大的推薦做法
https://github.com/Haneke/HanekeSwift/blob/master/Haneke/DiskCache.swift?