Преобразовать NSFileSystemSize в гигабайты - PullRequest
0 голосов
/ 15 мая 2010

Мне нужно преобразовать NSFileSystemSize в гигабайты.

NSDictionary * fsAttributes = [ [NSFileManager defaultManager]
       fileSystemAttributesAtPath:NSTemporaryDirectory()];
NSNumber *totalSize = [fsAttributes objectForKey:NSFileSystemSize];
NSString *sizeInGB = [NSString stringWithFormat:@"\n\n %3.2f GB",[totalSize floatValue] / 107374824];

//returns 69.86 GB

есть идеи, почему он не возвращает по меньшей мере 8.0GB?

Ответы [ 2 ]

2 голосов
/ 15 мая 2010

Как гнида, 1024 * 1024 * 1024 - это 1073741824, а не 107374824 (вам не хватает 1 на тысячи).

0 голосов
/ 25 апреля 2013
- (NSString *)formattedFileSize:(unsigned long long)size
{
    NSString *formattedStr = nil;
    if (size == 0)
        formattedStr = @"Empty";
    else
        if (size > 0 && size < 1024)
            formattedStr = [NSString stringWithFormat:@"%qu bytes", size];
        else
            if (size >= 1024 && size < pow(1024, 2))
                formattedStr = [NSString stringWithFormat:@"%.1f KB", (size / 1024.)];
            else
            if (size >= pow(1024, 2) && size < pow(1024, 3))
                formattedStr = [NSString stringWithFormat:@"%.2f MB", (size / pow(1024, 2))];
            else
                if (size >= pow(1024, 3))
                    formattedStr = [NSString stringWithFormat:@"%.3f GB", (size / pow(1024, 3))];

    return formattedStr;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...