美文网首页
数据保存

数据保存

作者: winnisz | 来源:发表于2017-03-14 17:45 被阅读0次

    1、用户的数据保存在Library的子目录

    /var/mobile/Containers/Data/Application/0AF8EA2D-6E55-4DB7-87EA-CD05CC485A08/Library/Caches/Qiniu/PersonalLocal

    Documents目录用于保存不可再生的文件,可再生的数据文件应该存放在Library/Cache目录下。

    Library/:顶级目录,没有用户数据,不提供给用户使用,含有几个标准的子目录,当然可以创建自定义子目录

    use this directory to store data files, caches, resources, preferences喜好, and even user data in some specific situations.

    Library/Preferences

    Library/Caches

    Documents 目录:用户可以用来写入并保存文件得地方,提供给用户使用

    tmp 目录我们可以在里面写入一些程序运行时需要用得数据,里面写入得数据在程序退出后会没有

    沙盒机制不允许A访问B沙盒中的文件,所以有Documents/Inbox存在

    解决:外部应用A请求当前应用打开存放在沙盒A中的文件

    将A中的文件拷贝一份到当前应用程序的Documents/Inbox目录中

    app与系统文件交互主要限制在应用程序的沙盒目录中

    安装一个应用程序的时候,安装程序会为应用程序创建一定数量的containers

    每个containers都有特定的功能

    bundle container:存放应用程序的bundle资源包---contains the app and all of its resources

    data container:存放应用程序与用户的数据

    data container进一步被分为:

    禁止访问或者创建containers以外的文件夹

    例外:使用系统公共接口访问用户的联系人或者音乐

    + (void)saveImageToLocal:(UIImage *)image fileName:(NSString *)fileName fileType:(NSInteger)fileType

    {

    NSString *filePath = nil;

    if (StockImageType == fileType)

    {

    filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"StockLocal"];

    }

    else

    {

    filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"PersonalLocal"];

    }

    if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])

    {

    [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];

    }

    filePath = [filePath stringByAppendingPathComponent:fileName];

    if (image) {

    NSData *data = UIImagePNGRepresentation(image);

    [data writeToFile:filePath atomically:YES];

    }

    }

    NSString *filePath = nil;

    if (StockImageType == fileType)

    {

    filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"StockLocal"];

    }

    else

    {

    filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"PersonalLocal"];

    }

    NSLog(@"%@",filePath);

    if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])

    {

    [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];

    }

    filePath = [filePath stringByAppendingPathComponent:fileName];

    return [[NSFileManager defaultManager] fileExistsAtPath:filePath];

    相关文章

      网友评论

          本文标题:数据保存

          本文链接:https://www.haomeiwen.com/subject/svwhnttx.html