美文网首页iOS 进阶
iOS沙盒常用的几种路径

iOS沙盒常用的几种路径

作者: tdb云端 | 来源:发表于2019-10-28 15:04 被阅读0次

简述

1.每个app下都有一个沙盒目录,隔离其他App,系统不允许其他App访问别的App的沙盒路径。
2.iOS的沙盒下面主要包含该以下三个文件:Documents、Library(内含Caches,Preferences,Application Support,Frameworks)、temp。
3.Home目录 NSString *homeDirectory = NSHomeDirectory();

Document文件

用来保存程序运行时生成的需要持久化的数据,iTunes会自动备份该目录,苹果官方建议程序中创建比较重要的文件的和浏览过的程序存放在这里。
获取方法:

// 文件路径是数组,这里取第一个元素
    NSString *docuPath = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)[0];

Library文件

用来保存app的偏好设置和主要存储缓存数据,需要持久化的数据不建议放在该目录之下,以免系统强制删除。Library文件里面包括四个文件。
1.Caches:主要缓存数据,当设备低存储空间时会被删除。iTunes设备不会进行拷贝。
2.Preferense:App的偏好设置和其他设置,iTunes、iCloud会进行备份该目录。NSUserDefaults就是默认存放在此文件夹下面。
3.Application Support:建议用来存储除用户数据相关以外的所有文件,如游戏的新关卡。在iTunes和iCloud备份时会备份该目录。
4.Frameworks:用来保存动态库的文件夹,在iOS系统中已不能使用,该目录可以忽略。

获取方法:

//library目录
NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject;
//caches目录
NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
//preference目录
NSString *preferencePath = NSSearchPathForDirectoriesInDomains(NSPreferencePanesDirectory, NSUserDomainMask, YES).firstObject;
//application support目录
NSString *applicationSupportPath = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES).firstObject;

Temp文件

临时文件夹,iTunes不会同步该目录,保存app运行中的临时文件,iphone重启会自动删除本目录下文件。

// 文件路径是数组,这里取第一个元素
NSString *tmpDir = NSTemporaryDirectory();

综上所述

1.我们保存的持久化文件可以放在Document和AppliactionSupport目录下,临时缓存文件放在在Temp和Cachese目录下,由于Temp和Cachese目录下系统会删除,所以不能保存重要文件。
2.除系统推荐的目录之外,用户也可以自己创建目录,也可以在推荐的目录下创建子目录进行管理

//获取Document文件
NSString * docuPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
//将需要创建的串拼接到后面
NSString * rarPath = [docuPath stringByAppendingPathComponent:@"document"];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL isDir = NO;
// fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
BOOL existed = [fileManager fileExistsAtPath:rarPath isDirectory:&isDir];
//如果文件夹不存在
if ( !(isDir == YES && existed == YES) ) {
      [fileManager createDirectoryAtPath:rarPath withIntermediateDirectories:YES attributes:nil error:nil];
   }

相关文章

  • iOS沙盒常用的几种路径

    简述 1.每个app下都有一个沙盒目录,隔离其他App,系统不允许其他App访问别的App的沙盒路径。2.iOS的...

  • iOS常用沙盒路径

    沙盒里有什么? 沙盒目录下有三个文件夹Documents Library(下面有Caches和Preference...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • iOS

    1、iOS中方法延迟执行的几种方式? 2、iOS常用的数据存储方式有哪些? 2.1、iOS沙盒目录机构是怎样的? ...

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS 沙河路径

    沙河路径 每个iOS 应用都有自己的沙盒路径,应用沙盒就是文件系统目录应用沙盒文件目录:应用程序包、Documen...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • iOS开发之沙盒机制

    沙盒 iOS系统,每个应用都有自己的沙盒,每个沙盒都是相互独立的,不能互相访问。 获取沙盒路径的代码: NSHom...

  • iOS读写json文件

    一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录。但是iOS系统会将每个应用的...

  • iOS数据存取

    iOS应用数据存取的常用方式 1.应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文...

网友评论

    本文标题:iOS沙盒常用的几种路径

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