我已经像这样从网上存储了图像
Documents/imagecache/domain1/original/path/inURI/foo.png
Documents/imagecache/domain2/original/path/inURI/bar.png
Documents/imagecache/...
Documents/imagecache/...
现在我想查看imagecache
的大小,包括所有子目录。
是否有方便的方法 - 最好不要手动抓取所有数据?
修改
我想查看iPhone应用程序内的大小。越狱是没有选择的。
源于尼古拉的回答
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *p = [documentsDirectory stringByAppendingPathComponent:path];
unsigned long long x =0 ;
for (NSString *s in [fileMgr subpathsAtPath:p]) {
NSDictionary *attributes = [fileMgr attributesOfItemAtPath: [p stringByAppendingPathComponent:s] error:NULL];
x+=[attributes fileSize];
}
答案 0 :(得分:1)
信息未存储在文件系统中。没有遍历目录就无法获得组合大小。
我不知道这样做的库函数,但这是一个应该有效的快速入侵:
unsigned long long combinedSize = 0;
for (NSString* path in [[NSFileManager defaultManager] subpathsAtPath:myDir]) {
combinedSize += [[attributesOfItemAtPath:path error:NULL] fileSize];
}
编辑2015:
我为a similar question here添加了更全面(更正确)的答案。