【问题标题】:Storage Space/HD space on iPhone via codeiPhone上的存储空间/高清空间通过代码
【发布时间】:2011-03-25 15:04:25
【问题描述】:

如何获取 iPhone 上剩余的存储空间量?我需要能够获取您可以通过 appbox pro 获得的信息,即。已用空间、可用空间、总空间,均以 GB 为单位。

如何在不使用私有 API 的情况下在应用内访问它?谢谢

【问题讨论】:

    标签: iphone memory storage hard-drive


    【解决方案1】:

    查看http://kdbdallas.com/2008/12/27/maciphone-show-availble-useable-diskspace/ 的 zip 文件(不是源代码) - 我在我的项目中使用它并且它有效。

    我做了一些更改(我需要字节),但您有以下所有单位的代码:

    -(int) bytesAvailable {
        float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
        int bytes = availableDisk;
        return (int)bytes;
    }
    
    -(int) kilosAvailable {
        float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
        int kilos = availableDisk/1024;
        return (int)kilos;
    }
    
    -(int) megasAvailable {
        float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
        int megas = availableDisk/1024/1024;
        return (int)megas;
    }
    
    -(int) gigasAvailable {
        float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
        int gigas = availableDisk/1024/1024/1024;
        return (int)gigas;
    }
    

    要使用它,您只需调用:

    FSStats *stats = [[FSStats alloc] initWithFilePath:@"/"];
    int freeSpace = [stats bytesAvailable];
    

    要获得总大小,您只需使用“f_bsize”:

    float availableDisk = (float)(tStats.f_bavail * tStats.f_bsize);
    float totalSize = (float)(tStats.f_bsize * tStats.f_bsize);
    NSLog(@"Total size: %.2f | Free: %.2f", totalSize, availableDisk);
    

    所有功劳归达拉斯布朗http://kdbdallas.com/

    【讨论】:

    • +1 给达拉斯布朗的裁判,但你改变了太多东西;将应用程序的文档目录提供给 FSStats,而不是 @"/"。我从文档目录中获得 5.9GB(与 iTunes 报告的相同),但从 @"/" 获得的只有 139MB。我猜是某种文件权限问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2013-12-05
    • 2014-12-24
    相关资源
    最近更新 更多