美文网首页
iOS数据持久化--沙盒目录结构与获取方式

iOS数据持久化--沙盒目录结构与获取方式

作者: ghost__ | 来源:发表于2018-04-24 12:00 被阅读6次

1.沙盒目录结构

沙盒中的目录结构包括:

》Documents:保存应用运行时生成的需要持久化的数据,iTunes备份和恢复的时候会包括此目录。
》Library:存储的程序默认的设置和其他信息。
》Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
》Library/Preferences:保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。iTunes会自动备份该文件目录下的内容。比如说:是否允许访问图片,是否允许访问地理位置。
》SystemData:存放系统数据。
》tmp:临时文件目录,在程序重新运行的时候,和开机的时候,会清空tmp文件夹。

2.获取方式1

SandBox Home: NSHomeDirectory()
SandBox Document:  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject
SandBox Library: NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject 
SandBox Lib/Caches: NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject
SandBox Tmp: NSTemporaryDirectory() 
SandBox Lib/Preferences: 这个地方一般使用偏好设置 NSUserDefaults
//主目录获取
NSString *home = [NSHomeDirectory() stringByAppendingPathComponent:@"home"];
//document获取
NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"document"];
//lib目录获取
NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"lib"];
//lib子目录cache获取
NSString *libCache = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"libcache"];
//tmp目录获取
NSString *tmp = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmp"];

//Library/Preferences 偏好设置
[[NSUserDefaults standardUserDefaults] setObject:@"Library/Preferences" forKey:@"Library/Preferences"];

[@"document" writeToFile:document atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"libCache" writeToFile:libCache atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"tmp" writeToFile:tmp atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"home" writeToFile:home atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"lib" writeToFile:lib atomically:YES encoding:NSUTF8StringEncoding error:nil];

3.获取方式2 <建议采用方式1进行操作>

NSString *main = NSHomeDirectory();
NSString *home = [main stringByAppendingPathComponent:@"home"];
NSString *document = [main stringByAppendingPathComponent:@"Documents/document"];
NSString *libCache = [main stringByAppendingPathComponent:@"Library/Caches/libcache"];
NSString *lib = [main stringByAppendingPathComponent:@"Library/lib"];
NSString *tmp = [main stringByAppendingPathComponent:@"tmp/tmp"];
NSString *libpre = [main stringByAppendingPathComponent:@"Library/Preferences/pre"];

[@"message" writeToFile:document atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"message" writeToFile:libCache atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"message" writeToFile:tmp atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"message" writeToFile:home atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"message" writeToFile:lib atomically:YES encoding:NSUTF8StringEncoding error:nil];
[@"message" writeToFile:libpre atomically:YES encoding:NSUTF8StringEncoding error:nil];

相关文章

  • 009-数据持久化方案

    数据持久化方案 iOS 默认情况下只能访问程序自己所在的目录,称为“沙盒”,沙盒结构的目录如下: Applicat...

  • iOS数据持久化--沙盒目录结构与获取方式

    1.沙盒目录结构 沙盒中的目录结构包括: 》Documents:保存应用运行时生成的需要持久化的数据,iTunes...

  • 第一篇:沙盒与数据持久化

    目录一、沙盒 1、什么是沙盒 2、沙盒下各个文件夹的作用及其路径获取二、数据持久化 1、什么是数据持久化 2、数据...

  • IOS 数据持久化

    IOS 数据持久化的各种方式 1.plist文件存储 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录)...

  • 沙盒文件

    iOS 持久化沙盒目录结构:出于安全考虑,iOS 系统的沙盒机制规定每个应用都只能访问当前沙盒目录下的文件,也有例...

  • iOS数据持久化方案

    在介绍存储方案之前有必要说下沙盒机制,详见:iOS中的沙盒目录 数据持久化,其实就是将数据写入到硬盘的方式,使得A...

  • 问答题

    1.数据持久化存储方案有哪些?沙盒的目录结构是怎样的?各自一般用于什么场合? iOS中几种数据持久化方案:我要永远...

  • iOS面试题分析

    iOS面试 Model层: 数据持久化存储方案有哪些? 沙盒的目录结构是怎样的?各自一般用于什么场合?- Appl...

  • iOS数据存储总结(数据持久化)

    谈iOS的数据存储的时候要先知道APP沙盒的结构和路径.沙盒的结构为: 沙盒的根目录: 搜索文件夹的方式: 数据存...

  • iOS关于数据持久化

    目录 一、什么是持久化 二、沙盒是什么 2.1 沙盒简介及获取沙盒路径 2.2 Documents 2.2 Lib...

网友评论

      本文标题:iOS数据持久化--沙盒目录结构与获取方式

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