IOS 计算文件的大小

来源:互联网 发布:java实例域 编辑:程序博客网 时间:2024/05/29 18:01

通常用于删除缓存的时,计算缓存大小

//获取缓存文件路径

-(NSString *)getCachesPath{    // 获取Caches目录路径    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSString *cachesDir = [paths objectAtIndex:0];    NSString *filePath = [cachesDir stringByAppendingPathComponent:@"com.nickcheng.NCMusicEngine"];    return filePath;}

//单个文件的大小

- (long long) fileSizeAtPath:(NSString*) filePath{    NSFileManager* manager = [NSFileManager defaultManager];    if ([manager fileExistsAtPath:filePath]){        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];    }    return 0;}

///计算缓存文件的大小的M

- (long long) fileSizeAtPath:(NSString*) filePath{    NSFileManager* manager = [NSFileManager defaultManager];    if ([manager fileExistsAtPath:filePath]){//        //取得一个目录下得所有文件名//        NSArray *files = [manager subpathsAtPath:filePath];//        NSLog(@"files1111111%@ == %ld",files,files.count);//        //        // 从路径中获得完整的文件名(带后缀)//        NSString *exe = [filePath lastPathComponent];//        NSLog(@"exeexe ====%@",exe);//        //        // 获得文件名(不带后缀)//        exe = [exe stringByDeletingPathExtension];//        //        // 获得文件名(不带后缀)//        NSString *exestr = [[files objectAtIndex:1] stringByDeletingPathExtension];//        NSLog(@"files2222222%@  ==== %@",[files objectAtIndex:1],exestr);        return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];    }    return 0;}

//遍历文件夹获得文件夹大小,返回多少M

- (float ) folderSizeAtPath:(NSString*) folderPath{    NSFileManager* manager = [NSFileManager defaultManager];    if (![manager fileExistsAtPath:folderPath]) return 0;//从前向后枚举器    NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];    NSString* fileName;    long long folderSize = 0;    while ((fileName = [childFilesEnumerator nextObject]) != nil){        NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];        folderSize += [self fileSizeAtPath:fileAbsolutePath];    }    return folderSize/(1024.0*1024.0);}
0 0
原创粉丝点击