标签:ios sandbox document library
IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。然后重新启动Finder,点击屏幕左上角苹果标志——强制退出——选择Finder然后点击重新启动,这个时候在重新打开Finder就可以看到被隐藏的文件了。
模拟器里的内容路径如下:
当删除应用程序重新安装的时候会重新生成目录
每个app目录下都有以下几个文件夹:
Documents/
Library/
Library/Caches
Library/Preferences
tmp/
.app
每个文件(文件夹)的功能如下:
.app/,这个就是可运行的应用文件,带有签名的文件包,包含应用程序代码和静态数据;
Documents/
:Use this directory to store critical user documents and app data files. Critical data is any data that cannot be recreated by your app, such as user-generated content.
The contents of this directory can be made available to the user through file sharing. The contents of this directory are backed up by iTunes.
:苹果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录;
Library/
:This directory is the top-level directory for files that are not user data files. You typically put files in one of several standard subdirectories but you can also create custom subdirectories for files you want backed up but not exposed to the user. You
should not use this directory for user data files.
The contents of this directory (with the exception of the Caches subdirectory) are backed up by iTunes.
For additional information about the Library directory, see “The Library Directory Stores App-Specific Files.”
:应用程序支持文件;
Library/Preferences/ :存储程序的默认设置或其它状态信息;
Library/Caches/:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除;当系统清理磁盘空间的时候会删除里面的内容。
tmp/
:Use this directory to write temporary files that do not need to persist between launches of your app. Your app should remove files from this directory when it determines they are no longer needed. (The system may also purge lingering files from this directory
when your app is not running.)
In iOS 2.1 and later, the contents of this directory are not backed up by iTunes.
:创建和存放临时文件的地方,应用程序成功启动,临时文件不需要持久保存。
注:
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
下面是获取文件目录的代码以及读写文件的代码:示例Demo免费下载地址:http://download.csdn.net/detail/weasleyqi/7508141
获取根目录:
NSString *homePath = NSHomeDirectory(); NSLog(@"Home目录:%@",homePath);
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsPath = [docPath objectAtIndex:0];
NSArray *libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libPath = [libsPath objectAtIndex:0];
NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachePath = [cacPath objectAtIndex:0];
NSString *tempPath = NSTemporaryDirectory(); NSLog(@"temp目录:%@",tempPath);
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsPath = [docPath objectAtIndex:0]; //写入文件 if (!documentsPath) { NSLog(@"目录未找到"); }else { NSString *filePaht = [documentsPath stringByAppendingPathComponent:@"test.txt"]; NSArray *array = [NSArray arrayWithObjects:@"Title",@"Contents", nil]; [array writeToFile:filePaht atomically:YES]; }
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsPath = [docPath objectAtIndex:0]; NSString *readPath = [documentsPath stringByAppendingPathComponent:@"test.txt"]; NSArray *fileContent = [[NSArray alloc] initWithContentsOfFile:readPath]; NSLog(@"文件内容:%@",fileContent);
示例Demo下载地址:http://download.csdn.net/detail/weasleyqi/7508141
【iOS知识学习】_iOS沙盒机制,布布扣,bubuko.com
标签:ios sandbox document library
原文地址:http://blog.csdn.net/weasleyqi/article/details/31502459