CGFloat size = 0.0;
// 找到需要计算大小文件夹的全路径
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *arr = [manager subpathsAtPath:path];
for (NSString *str in arr) {
NSString *subPath = [path stringByAppendingPathComponent:str];
NSString *sizeStr = [manager attributesOfItemAtPath:subPath error:nil][NSFileSize];
size += sizeStr.floatValue;
}
NSString *str = [NSString stringWithFormat:@"%.2fM", size / 1000000];
封装工具类另一种
#import "NSString+XMGExtension.h"
@implementation NSString (Extension)
- (unsigned long long)fileSize
{
// 总大小
unsigned long long size = 0;
// 文件管理者
NSFileManager *mgr = [NSFileManager defaultManager];
// 是否为文件夹
BOOL isDirectory = NO;
// 路径是否存在
BOOL exists = [mgr fileExistsAtPath:self isDirectory:&isDirectory];
if (!exists) return size;
if (isDirectory) { // 文件夹
// 获得文件夹的大小 == 获得文件夹中所有文件的总大小
NSDirectoryEnumerator *enumerator = [mgr enumeratorAtPath:self];
for (NSString *subpath in enumerator) {
// 全路径
NSString *fullSubpath = [self stringByAppendingPathComponent:subpath];
// 累加文件大小
size += [mgr attributesOfItemAtPath:fullSubpath error:nil].fileSize;
}
} else { // 文件
size = [mgr attributesOfItemAtPath:self error:nil].fileSize;
}
return size;
}
删除文件NSFileManager
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;