• 获取iOS文件夹大小(空间占用)


    + (float)calculateFileSizeInUnit:(unsigned long long)contentLength
    {
        if(contentLength >= pow(1024, 3))
            return (float) (contentLength / (float)pow(1024, 3));
        else if(contentLength >= pow(1024, 2))
            return (float) (contentLength / (float)pow(1024, 2));
        else if(contentLength >= 1024)
            return (float) (contentLength / (float)1024);
        else
            return (float) (contentLength);
    }
    + (NSString *)calculateUnit:(unsigned long long)contentLength
    {
        if(contentLength >= pow(1024, 3))
            return @"GB";
        else if(contentLength >= pow(1024, 2))
            return @"MB";
        else if(contentLength >= 1024)
            return @"KB";
        else
            return @"Bytes";
    }
    + (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;
    }
    + (long long) fileSizeAtPath:(NSString*) filePath{
        NSFileManager* manager = [NSFileManager defaultManager];
        if ([manager fileExistsAtPath:filePath]){
            return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
        }
        return 0;
    }
    
    +(NSString *)folderSizeStringAtPath:(NSString*) filePath
    {
        float size=[self folderSizeAtPath:filePath];
        NSString *fileSizeString=[NSString stringWithFormat:@"%.02f%@",[self calculateFileSizeInUnit:size],[self calculateUnit:size]];
        return fileSizeString;
    }
  • 相关阅读:
    如何使用Java、Servlet创建二维码
    Java线程池主线程等待子线程执行完成
    Java多线程--让主线程等待所有子线程执行完毕
    查询及删除重复记录的方法
    聚集索引和非聚集索引
    数据库索引类型及实现方式
    各种排序算法的分析及java实现
    两个变量交换值的方法
    Java性能优化技巧
    JVM调优总结(九)-新一代的垃圾回收算法
  • 原文地址:https://www.cnblogs.com/ashamp/p/4067418.html
Copyright © 2020-2023  润新知