首页 > 代码库 > iOS下的目录

iOS下的目录

 

今天索性终于把iOS下的目录搞搞清楚。原来就是这么一回事的。

 

一、iOS中的沙盒机制

 

· iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。

· 每个应用程序都有自己的独立的存储空间(沙盒)

· 一般来说应用程序之间是不可以互相访问

模拟器沙盒的位置

/User/userName/Library/Application Support/iPhone Simulator

当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Document、Library和temp。

Document:一般需要持久的数据都放在此目录中,可以在当中添加子文件夹,iTunes备份和恢复的时候,会包括此目录。

Library:设置程序的默认设置和其他状态信息

temp:创建临时文件的目录,当iOS设备重启时,文件会被自动清除

 

 

 二,iphone沙盒的4个文件

 

 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

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

 3、Library 目录:这个目录下有两个子目录:Caches 和 Preferences

 Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
 Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

 4、tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

 

 

好啦,上代码:

 

- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.        self.title=@"RootViewController";            //获取根目录    NSString*homePath = NSHomeDirectory();    NSLog(@"Home目录:%@",homePath);        //获取Documents文件夹目录,第一个参数是说明获取Doucments文件夹目录,第二个参数说明是在当前应用沙盒中获取,所有应用沙盒目录组成一个数组结构的数据存放    NSArray*docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);    NSString*documentsPath = [docPath objectAtIndex:0];    NSLog(@"Documents目录:%@",documentsPath);        //获取Cache目录    NSArray*cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSString*cachePath = [cacPath objectAtIndex:0];    NSLog(@"Cache目录:%@",cachePath);        //Library目录    NSArray*libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);    NSString*libPath = [libsPath objectAtIndex:0];    NSLog(@"Library目录:%@",libPath);        //temp目录    NSString*tempPath = NSTemporaryDirectory();    NSLog(@"temp目录:%@",tempPath);}

 

打印出来的:

 

2014-06-28 13:56:55.257 iOS的目录[6565:60b] Home目录:/Users/li/Library/Application Support/iPhone Simulator/7.1/Applications/678B1114-663E-4550-A115-1934E4E70DF22014-06-28 13:56:55.257 iOS的目录[6565:60b] Documents目录:/Users/li/Library/Application Support/iPhone Simulator/7.1/Applications/678B1114-663E-4550-A115-1934E4E70DF2/Documents2014-06-28 13:56:55.258 iOS的目录[6565:60b] Cache目录:/Users/li/Library/Application Support/iPhone Simulator/7.1/Applications/678B1114-663E-4550-A115-1934E4E70DF2/Library/Caches2014-06-28 13:56:55.259 iOS的目录[6565:60b] Library目录:/Users/li/Library/Application Support/iPhone Simulator/7.1/Applications/678B1114-663E-4550-A115-1934E4E70DF2/Library2014-06-28 13:56:55.259 iOS的目录[6565:60b] temp目录:/Users/li/Library/Application Support/iPhone Simulator/7.1/Applications/678B1114-663E-4550-A115-1934E4E70DF2/tmp/Terminating in response to SpringBoards termination.