对应用内某些下载的内容进行大小计算的方法:
+(float)downLoadSizeDirPath:(NSString *)downloadDirPath
{
@autoreleasepool {
long long folderSize = 0;
NSFileManager* manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:downloadDirPath]) return 0;
NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:downloadDirPath] objectEnumerator];//从前向后枚举器
NSString* fileName;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [downloadDirPath stringByAppendingPathComponent:fileName];
folderSize += [Common fileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0);
}
}
将需要统计的大小文件夹的路径传入进来,就可以返回到这个文件的大小了,注意,在调用这个方法的时候,需要在子线程中进行调用。
还有在显示的时候,可以根据适当的情况进行优化,让显示的更加好看:
if (self.downSize > 1024.00)
{
self.downSize = self.downSize/(1024.0*1024.0);
showSize = [showSize stringByAppendingFormat:@" 占%0.2fGB", self.downSize];
}else{
showSize = [showSize stringByAppendingFormat:@" 占%0.2fMB", self.downSize];
}