- (long)fileSizeAtFile:(NSString *)file{
// 1.文件管理者
NSFileManager *mgr = [NSFileManager defaultManager];
// 2.判断file是否存在
BOOL isDirectory = NO;
BOOL fileExists = [mgr fileExistsAtPath:file isDirectory:&isDirectory];
// 文件文件夹不存在
if (fileExists == NO) return 0;
// 3.判断file是否为文件夹
if (isDirectory) { // 是文件夹
NSArray *subpaths = [mgr contentsOfDirectoryAtPath:file error:nil];
long long totalSize = 0;
for (NSString *subpath in subpaths) {
NSString *fullSubpath = [file stringByAppendingPathComponent:subpath];
totalSize += [self fileSizeAtFile:fullSubpath];
}
return totalSize;
} else { // 不是文件夹, 文件
// 直接计算当前文件的尺寸
NSDictionary *attr = [mgr attributesOfItemAtPath:file error:nil];
return [attr[NSFileSize] longLongValue];
}
}