【发布时间】:2012-03-08 01:37:53
【问题描述】:
我有以下代码用于在设备内存中缓存从 Flickr 加载的照片:
NSURL *urlForPhoto = [FlickrFetcher urlForPhoto:self.photo format:FlickrPhotoFormatLarge];
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imagePath = [rootPath stringByAppendingString:[self.photo objectForKey:FLICKR_PHOTO_ID]];
NSData *dataForPhoto;
NSError *error = nil;
if ([[NSFileManager defaultManager] fileExistsAtPath:imagePath]) {
dataForPhoto = [NSData dataWithContentsOfFile:imagePath];
} else {
dataForPhoto = [NSData dataWithContentsOfURL:urlForPhoto];
[dataForPhoto writeToFile:imagePath atomically:YES];
}
我想将其限制为 10MB,然后如果达到限制以删除缓存中最旧的照片,我如何获取我保存的所有文件的总大小并检查哪个是最旧的?
【问题讨论】:
-
是的,我必须把评论加长,这样我才能回答。
-
计算一个目录在磁盘上占用的大小实际上有点复杂。了解如何在 this answer 中回答类似问题。
标签: objective-c ios ios5 directory nsfilemanager