如何在iOS中查看应用程序的可用空间?

时间:2013-03-05 10:59:26

标签: iphone ios objective-c ipad cocoa-touch

在我的应用程序中,我想下载一个大数据文件(可能超过50MB),但同时如果用户在音乐和其他东西中占用了大量空间,那么代码将如何知道内存因为应用程序是有限的(例如40 MB),代码现在应该限制下载。

2 个答案:

答案 0 :(得分:3)

您可以创建一个功能:

#include <sys/param.h>  
#include <sys/mount.h>  

+(float) diskSpaceLeft {  
    NSArray* thePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    struct statfs tStats;  
    const char *path = [[NSFileManager defaultManager] fileSystemRepresentationWithPath:[thePath lastObject]];
    statfs(path, &tStats);           
    float availableSpace = (float)(tStats.f_bavail * tStats.f_bsize);         
    return availableSpace;  
}

答案 1 :(得分:0)

使用它:

 #include <sys/param.h>  
 #include <sys/mount.h>  

+(float) diskSpaceAvailable {  
    NSArray* pathDocDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    struct statfs tStats;  
    statfs([[pathDocDir lastObject] cString], &tStats);  
    float total_space = (float)(tStats.f_blocks * tStats.f_bsize);  

    return total_space;  
}