我有一个从服务器下载视频和图像文件的应用。我将这些文件存储在我的应用程序的文件夹中我有3个不同的地方存储文件:
我用来获取这些文件夹路径的代码是:
+ (NSString *)FilesStoreDirectory
{
NSArray *paths = [[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask];
NSString *path = paths.count ? [(NSURL *)paths.firstObject path] : NSTemporaryDirectory();
NSString *result = [path stringByAppendingPathComponent:@"files"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:result])
{
[fileManager createDirectoryAtPath:result withIntermediateDirectories:YES attributes:nil error:nil];
}
return result;
}
在注销时,我删除所有这些文件夹和文件。数据库(sql)是唯一未删除的文件。
我的问题是应用程序的大小在使用时会增加。我有一个4 GB存储文件的示例,在注销后它下降到1.9 GB,当它应该只有23 MB +数据库(小)。通过检查设置 - >检查应用程序有多大的方式的使用。
我想也许文件夹创建存在问题,它会在应用程序的不同运行之间创建不同的文件夹,但这并没有解决问题。
我播放这些视频文件,所以我怀疑AVPlayer缓存这些文件而不让它们离开。但这只是一种预感。
任何人都知道为什么会这样,我怎样才能恢复到23 MB的应用程序大小?
感谢。
LATER EDIT:
这是我用来删除文件夹的代码:
[[NSFileManager defaultManager] removeItemAtPath:[LVCoreDataController FilesStoreDirectory] error:nil];