检测iPhone / iPod / iPad容量

时间:2010-11-23 19:35:12

标签: iphone xcode

我正在创建一个应用程序,它需要检测运行它的设备的品牌和型号(包括硬盘大小)。我发现了很多关于如何识别不同iPhone型号的帖子,但找不到任何有关检测高清尺寸的参考。

这甚至可能吗?

提前致谢, 奥利

3 个答案:

答案 0 :(得分:2)

我认为默认的POSIX东西应该可以在iOS上使用。

您可能需要查看statvfs(标准C库的一部分)并使用它来读取可用磁盘空间量。它不是Cocoa API的一部分,但这是有道理的。

文档应该在您的计算机上。在终端中:man statvfs

希望有所帮助。应该是一个5线程,以获得您需要的信息。 :)

答案 1 :(得分:1)

经过多一点挖掘后,我采用了以下方法,因为它似乎是最直接的,似乎工作正常。

感谢BastiBense提供的解决方案,我将在未来进一步研究POSIX。

NSDictionary *fsAttr = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];
float diskSize = [[fsAttr objectForKey:NSFileSystemSize] doubleValue] / 1000000000;
NSLog(@"Disk Size: %0.0f",diskSize);

答案 2 :(得分:1)

POSIX版本(黑客攻击):

#include <sys/statvfs.h>

double get_disk_capacity ( char * path)
{
    struct statvfs sfs;
    unsigned long long result = 0;
    double disk_capacity = 0;

    if ( statvfs ( path, &sfs) != -1 )
    {
        result = (unsigned long long)sfs.f_frsize * sfs.f_blocks;

        if (result > 0)
        {
            disk_capacity = (double)result/(1024*1024);
        }
    }

    return disk_capacity;
}

// Sum the size of the two logical partitions (root + user space)
double total_capacity = get_disk_capacity("/") + get_disk_capacity("/private/var");

printf( "%.2f MB", total_capacity);