iOS沙盒简单介绍

先简单介绍一下什么是沙盒:你可以简单理解成为一个目录,这个目录的改动不会对操作系统造成任何损失。(这里也有一点点介绍

看看苹果的沙盒目录:

再附一张苹果官方的图

一个iOS app操作都是在自己的沙盒中进行的。

首先:

Deveices,里面是各种的模拟器设备。

然后随便找一个模拟器设备。里面的data是里面的数据。然后Container里面Data中有一个Application就是该设备的安装软件。

我们可以看到里面有好多个(就算我们Reset Content and Settings,也会有。因为里面有设备自带的软件,例如通讯录,地图等。)。

随便打开一个就可以看到里面某个程序包括三个目录:

Documents

Library:又包括Caches和Preferences

temp

其中的

Documents只有用户生成的文件、其他的数据以及程序程序不能创建的文件,这里的数据通过iCloud自动备份。我们录制的音频和拍照的图片都可以放到这里。

Library:可以重新下载或者重新生成的数据应该保存在Library的caches目录中。这里用于盛放缓存。

tmp:是临时使用的数据。iCloud不会自动备份这些文件,这些数据使用完后要随时删除,避免占用用户设备空间。

- (NSString *)documentDirectory {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [paths objectAtIndex:0];
}

通过上面这个方法可以得到:

/Users/zhanggui/Library/Developer/CoreSimulator/Devices/B6134687-CC10-40DE-BD9D-A2E5AD2D5C03/data/Containers/Data/Application/34361283-8619-481D-B8CB-B25EB4B787E2/Documents

也就是Documents的路径.

还可以得到通过下面的方法:

 NSString *s = NSHomeDirectory();

得到如下结果:

/Users/zhanggui/Library/Developer/CoreSimulator/Devices/B6134687-CC10-40DE-BD9D-A2E5AD2D5C03/data/Containers/Data/Application/08A6D627-1363-48B4-8AF8-A1ED361DC9D6

故名思议,我们通过NSHomeDirectory得到了该安装软件的目录。(里面就包括Documents/Library/temp)

苹果官方介绍的是返回用户的或者应用程序的家目录,依赖于平台。

再来看一下如何取得Caches目录路径的方法:

  NSString *s = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

返回结果:

/Users/zhanggui/Library/Developer/CoreSimulator/Devices/B6134687-CC10-40DE-BD9D-A2E5AD2D5C03/data/Containers/Data/Application/DB647E93-5F05-4B7B-A8E9-F6F01DD2586B/Library/Caches

最后看一下如何获取tmp目录:

  NSString *s = NSTemporaryDirectory();

返回结果:

/Users/zhanggui/Library/Developer/CoreSimulator/Devices/B6134687-CC10-40DE-BD9D-A2E5AD2D5C03/data/Containers/Data/Application/C7CA833E-8D20-480B-AB91-234A8F17336D/tmp/

--------------------------------------------------------------------大概就这么多吧--------------------------------------------------------------------

NO ,NO ,NO看看苹果官方的说明吧:


AppName.app


This is the app’s bundle. This directory contains the app and all of its resources.

You cannot write to this directory. To prevent tampering, the bundle directory is signed at installation time. Writing to this directory changes the signature and prevents your app from launching. You can, however, gain read-only access to any resources stored in the apps bundle. For more information, see theResource Programming Guide

The contents of this directory are not backed up by iTunes. However, iTunes does perform an initial sync of any apps purchased from the App Store.


Documents/


Use this directory to store user-generated content. The contents of this directory can be made available to the user through file sharing; therefore, his directory should only contain files that you may wish to expose to the user.

The contents of this directory are backed up by iTunes.


Documents/Inbox


Use this directory to access files that your app was asked to open by outside entities. Specifically, the Mail program places email attachments associated with your app in this directory. Document interaction controllers may also place files in it.

Your app can read and delete files in this directory but cannot create new files or write to existing files. If the user tries to edit a file in this directory, your app must silently move it out of the directory before making any changes.

The contents of this directory are backed up by iTunes.


Library/


This is the top-level directory for any files that are not user data files. You typically put files in one of several standard subdirectories. iOS apps commonly use the Application Support and Caches subdirectories; however, you can create custom subdirectories.

Use the Library subdirectories for any files you don’t want exposed to the user. Your app should not use these directories for user data files.

The contents of the Library directory (with the exception of the Caches subdirectory) are backed up by iTunes.

For additional information about the Library directory and its commonly used subdirectories, see The Library Directory Stores App-Specific Files.


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 they are no longer needed; however, the system may purge this directory when your app is not running.

The contents of this directory are not backed up by iTunes.

英语好的大神可以看一下。不好的飘过,,,,

更多请见:https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

时间: 2024-10-01 21:56:53

iOS沙盒简单介绍的相关文章

IOS 阶段学习第25天笔记(IOS沙盒机制介绍)

IOS学习(OC语言)知识点整理 一.IOS沙盒机制介绍 1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒,但在ios8中已经开放访问(extension) 2)extension是ios8新开放的一种对几个固定系统区域的拓展机制,它可以在一定程度上弥补ios的沙盒机制对应用间的通信限制 3)应用沙盒一般包括以下几个文件目录: 1.应用程序包:包含所有资源文件和可执行文件 2.Documents:保存应用

IOS 学习之 iOS沙盒(sandbox) 介绍 沙盒机制 文件操作(一)

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

iOS沙盒机制介绍

一.沙盒机制 沙盒的概念:沙盒是每一个iOS应用程序都会自动创建的一个文件系统目录(文件夹),而且沙盒还具有独立.封闭.安全的特点. 沙盒机制 iOS中的沙盒不仅仅是一个文件目录,TA其实更是一种安全体系 TA规定了应用程序只能在为该应用程序创建的文件夹(也就是沙盒)内访问文件,不可以访问其他沙盒内的内容(iOS已经部分开放访问) 所有的非代码文件都保存在沙盒中,图片.音频.视频.属性列表(plist).sqlite数据库以及文本文件等. 沙盒机制的特点 每个应用程序的活动范围都限定在自己的沙盒

iOS 沙盒目录结构介绍

iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件.当然,在用户授权的情况下,应用也可以访问其他目录下面的文件.比如,用户授权情况下,应用可以访问相册.通讯录.在开发中,经常会涉及到 iOS 沙盒目录,比如读写文件,归档解档等. 一:沙盒的目录结构 app的沙盒目录结构如下图: 可知,沙盒目录下有三个文件夹:Documents.Library.Temp.其中,Library下面有两个文件夹,分别是 Preferences 和 Caches. 二:每个目录下存放的文件

iOS学习之iOS沙盒(sandbox)机制和文件操作

iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 1.iOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行. 通过这张图只能从表层上理解sandbox是一种安全体系,应

iOS 沙盒

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

iOS学习之iOS沙盒(sandbox)机制和文件操作(一)

1.iOS沙盒机制 iOS应用程序仅仅能在为该改程序创建的文件系统中读取文件,不能够去其他地方訪问,此区域被成为沙盒,所以全部的非代码文件都要保存在此,比如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每一个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去訪问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检測,假如不符合条件的话,不会被放行.     通过这张图仅仅能从表层上理解sandbox是一种安全体系,应用程序的全部操作都要通过这个体系来运行,当中核心

【转】IOS 沙盒机制及各个目录

IOS沙盒机制(SandBox) 原文http://www.cnblogs.com/taintain1984/archive/2013/03/19/2969201.html IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据

iOS沙盒(SanBox)机制

1.IOS沙盒机制 IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 2.查看模拟器沙盒文件夹 查看模拟器的沙盒文件夹在Mac电脑上的存储位置,文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,