計算某個文件大小
@implementation NSString (Extension)
- (unsigned long long)fileSize
{
// 總大小
unsigned long long size = 0;
// 文件管理者
NSFileManager *mgr = [NSFileManager defaultManager];
// 文件屬性
NSDictionary *attrs = [mgr attributesOfItemAtPath:self error:nil];
if ([attrs.fileType isEqualToString:NSFileTypeDirectory]) { // 文件夾
// 獲得文件夾的大小 == 獲得文件夾中所有文件的總大小
NSDirectoryEnumerator *enumerator = [mgr enumeratorAtPath:self];
for (NSString *subpath in enumerator) {
// 全路徑
NSString *fullSubpath = [self stringByAppendingPathComponent:subpath];
// 累加文件大小
size += [mgr attributesOfItemAtPath:fullSubpath error:nil].fileSize;
}
} else { // 文件
size = attrs.fileSize;
}
return size;
}
計算文件夾的大小
- (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;
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者