1. 获取磁盘总空间大小
//磁盘总空间
+ (CGFloat)diskOfAllSizeMBytes
{
CGFloat size = 0.0;
NSError *error;
NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
if (error) {
#ifdef DEBUG
NSLog(@"error: %@", error.localizedDescription);
#endif
}else{
NSNumber *number = [dic objectForKey:NSFileSystemSize];
size = [number floatValue]/1024/1024;
}
return size;
}
2. 获取磁盘可用空间大小
//磁盘可用空间
+ (CGFloat)diskOfFreeSizeMBytes
{
CGFloat size = 0.0;
NSError *error;
NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
if (error) {
#ifdef DEBUG
NSLog(@"error: %@", error.localizedDescription);
#endif
}else{
NSNumber *number = [dic objectForKey:NSFileSystemFreeSize];
size = [number floatValue]/1024/1024;
}
return size;
}
3. 获取指定路径下某个文件的大小
//获取文件大小
+ (long long)fileSizeAtPath:(NSString *)filePath
{
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:filePath])
{
return 0;
}
else
{
return [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize];
}
}
4. 获取文件夹下所有文件的大小
//获取文件夹下所有文件的大小
+ (long long)folderSizeAtPath:(NSString *)folderPath
{
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:folderPath]) return 0;
NSEnumerator *filesEnumerator = [[fileManager subpathsAtPath:folderPath] objectEnumerator];
NSString *fileName;
long long folerSize = 0;
while ((fileName = [filesEnumerator nextObject]) != nil) {
NSString *filePath = [folderPath stringByAppendingPathComponent:fileName];
folerSize += [self fileSizeAtPath:filePath];//见方法3
}
return folerSize;
}
//C
#include <stdio.h>
int main(int argc, const char * argv[]) {
printf("Hello, World!\n");
FILE *fp;
long siz;
char path[100]="/Users/wangyanping/Desktop/image.jpg"; //图片地址,我的图片放在E盘根目录
if((fp=fopen(path,"rb"))==NULL)
{
printf("不能打开该地址文件,请检查\n");
getchar();
return 0;
}
if (fp) {
fseek(fp, 0, SEEK_END);
siz = ftell(fp);
fclose(fp);
}
siz/=1024.0;
printf("该图片大小为 %ld kb\n",siz);
getchar();
return 0;
}
//C
#include <stdio.h>
int main(int argc, const char * argv[]) {
printf("Hello, World!\n");
FILE *fp;
long siz;
char path[100]="/Users/wangyanping/Desktop/image.jpg"; //图片地址,我的图片放在E盘根目录
if((fp=fopen(path,"rb"))==NULL)
{
printf("不能打开该地址文件,请检查\n");
getchar();
return 0;
}
if (fp) {
fseek(fp, 0, SEEK_END);
siz = ftell(fp);
fclose(fp);
}
siz/=1024.0;
printf("该图片大小为 %ld kb\n",siz);
getchar();
return 0;
}
- (void)calulateImageFileSize:(UIImage *)image {
NSData *data = UIImagePNGRepresentation(image);
if (!data) {
data = UIImageJPEGRepresentation(image, 0.5);//需要改成0.5才接近原图片大小,原因请看下文
}
double dataLength = [data length] * 1.0;
NSArray *typeArray = @[@"bytes",@"KB",@"MB",@"GB",@"TB",@"PB", @"EB",@"ZB",@"YB"];
NSInteger index = 0;
while (dataLength > 1024) {
dataLength /= 1024.0;
index ++;
}
NSLog(@"image = %.3f %@",dataLength,typeArray[index]);
}