一、沙盒目录结构

应用程序目录的路径下有三个文件夹:Documents、Library、temp以及一个.app包!该目录下就是应用程序的沙盒,应用程序只能访问当前目录下的文件夹。

  • Document

除了基于NSUserDefaults的首选项配置之外,应用程序的数据、文件都保存在该目录下。

  • Library

这个目录下有两个子目录:基于NSUserDefaults的首选项参数保存在Library/Preferences下。Caches:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份。

  • tmp

这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。该路径下的文件不会被iTunes备份。

  • AppName.app

这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

二、获取各种文件目录的路径

获取documents目录

//获取沙盒主目录路径
NSString *homePath = NSHomeDirectory();
//获取Documents目录路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
//获取Library的目录路径
NSString *libPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
//获取Caches目录路径
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
//获取tmp目录路径
NSString *tmpPath =  NSTemporaryDirectory();
//获取应用程序程序包中资源包文件
NSString *appPath = [[NSBundle mainBundle] bundlePath];

directory NSSearchPathDirectory类型的enum值,表明要搜索的目录名称,比如这里用NSDocumentDirectory表明我们要搜索的是Documents目录。如果将其换成NSCachesDirectory就表示我们搜索的是Library/Caches目录。

domainMask NSSearchPathDomainMask类型的enum值,指定搜索范围,这里的NSUserDomainMask表示搜索的范围限制于当前应用的沙盒目录。还可以写成NSLocalDomainMask(表示/Library)、NSNetworkDomainMask(表示/Network)等。

expandTilde BOOL值,表示是否展开波浪线~。在iOS中的全写形式是/User/userName,该值为YES即表示写成全写形式,为NO就表示直接写成“~”。

该值为NO:Caches目录路径~/Library/Caches

该值为YES:Caches目录路径

三、沙盒目录写入和读取

NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [docPath stringByAppendingPathComponent:@"xiaomeng.txt"];
NSString *writeStr = @"字符串写入";
//字符串写入
[writeStr writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
//字符串读取
NSString *readStr = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSLog(@"readStr = %@",readStr);
posted on 2018-09-30 14:20  广坤山货  阅读(130)  评论(0编辑  收藏  举报