如何以编程方式获取应用程序使用的存储状态?

时间:2012-04-11 08:27:07

标签: iphone ios data-storage

我有一个存储用户数据的应用程序,如图像和文本。我想显示我的应用程序消耗了多少磁盘空间。这可能吗?

1 个答案:

答案 0 :(得分:1)

我不知道这三个,但我已经做了一些事情来通过文件管理器获取目录中的文档大小,可能这会对你有帮助,这里是代码

[[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir];
        if (isDir) {
            NSPipe *pipe = [NSPipe pipe];
            NSTask *t = [[[NSTask alloc] init] autorelease];
            [t setLaunchPath:@"/usr/bin/du"];
            [t setArguments:[NSArray arrayWithObjects:@"-k", @"-d", @"0", path, nil]];
            [t setStandardOutput:pipe];
            [t setStandardError:[NSPipe pipe]];

            [t launch];

            [t waitUntilExit];

            NSString *sizeString = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] availableData] encoding:NSASCIIStringEncoding] autorelease];
            sizeString = [[sizeString componentsSeparatedByString:@" "] objectAtIndex:0];
            bytes = [sizeString longLongValue]*1024;
        }
        else {
            bytes = [[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil] fileSize];
        }

字节将返回大小