iOS App中丢失的文件

时间:2015-09-22 09:50:37

标签: ios iphone storage nsfilemanager

我有一个从服务器下载视频和图像文件的应用。我将这些文件存储在我的应用程序的文件夹中我有3个不同的地方存储文件:

  1. 缓存目录 - 已下载的视频+图像
  2. 应用程序支持目录 - 数据库
  3. 文件目录 - 当前用户拍摄的视频
  4. 我用来获取这些文件夹路径的代码是:

    + (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];
    

0 个答案:

没有答案