【iOS知识学习】_iOS沙盒机制

时间:2021-07-22 14:33:39

IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序仅仅能在为该应用创建的目录内读取文件,不能够訪问其它地方的内容。全部的非代码文件都保存在这个地方。比方图片、声音、属性列表和文本文件等。

1.每一个应用程序都在自己的沙盒内

2.不能任意跨越自己的沙盒去訪问别的应用程序沙盒的内容

3.应用程序向外请求或接收数据都须要经过权限认证



显示和隐藏目录的方法:

显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

然后又一次启动Finder,点击屏幕左上角苹果标志——强制退出——选择Finder然后点击又一次启动,这个时候在又一次打开Finder就能够看到被隐藏的文件了。

模拟器里的内容路径例如以下:

【iOS知识学习】_iOS沙盒机制

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vhc2xleXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

每一个应用程序都有自己独有的文件夹:

/var/mobile/Applications/UUID

当应用程序安装时,UUID随机产生;

当删除应用程序又一次安装的时候会又一次生成文件夹

每一个app文件夹下都有下面几个文件夹:

Documents/

Library/

Library/Caches

Library/Preferences

tmp/

.app

【iOS知识学习】_iOS沙盒机制

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vhc2xleXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

每一个文件(目录)的功能例如以下:

.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);

获取Document文件夹:

    NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [docPath objectAtIndex:0];

获取Library文件夹:

    NSArray *libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libPath = [libsPath objectAtIndex:0];

获取Cache文件夹:

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

获取Tmp文件夹:

    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);

【iOS知识学习】_iOS沙盒机制【iOS知识学习】_iOS沙盒机制

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vhc2xleXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="380" height="800">

演示样例Demo下载地址:http://download.csdn.net/detail/weasleyqi/7508141

【iOS知识学习】_iOS沙盒机制的更多相关文章

  1. IOS开发-UI学习-沙盒机制&文件操作

    ž苹果为软件的运行提供了一个沙盒机制 每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件 žDocuments:苹果建议将程序中 ...

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

    iOS学习(OC语言)知识点整理 一.iOS沙盒机制介绍 1)概念: 每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒 ...

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

    1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. ...

  4. OS的沙盒机制 --基础知识

    /* iOS的沙盒机制,应用只能访问自己应用目录下的文件. iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容. iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙 ...

  5. iOS学习之沙盒

    1.iOS沙盒 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1 ...

  6. iOS沙盒机制介绍,Block 的介绍

    一.iOS沙盒机制介绍 (转载) 1)概念:每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用放入文件 系统隔离,ios系统不允许访问 其他应用的应用沙盒,但在ios8中已经开放访 ...

  7. IOS 沙盒机制 浅析

    IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件 ...

  8. iOS之沙盒机制和如何获取沙盒路径

    iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒.每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme.沙盒里面的文件可以是照片.声音文件. ...

  9. IOS 沙盒机制 && 关于document\library\tmp的灵活使用

    默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件Documents:苹果建议将程序中建立的或在程序中浏览到的文件数 ...

随机推荐

  1. JS 获取地址栏三级域名(改进版)

    <script type="text/javascript"> str="http://yl.www.tyg.com/index.php"; str ...

  2. 电影成生活O2O必争之地,破局之战就此拉开

    这一次的两会过后,互联网最流行的一个词恐怕当属“互联网+”.尤其是总理关于“以互联网为载体.把线上线下互动的新兴消费搞得红红火火”的一席话,更是让国内的O2O从业者兴奋不已.百度李彦宏在两会接受记者采 ...

  3. Ansible状态管理

     转载自:http://xdays.me/ansible状态管理.html 简介 就像所有服务器批量管理工具(puppet有DSL,salt有state)一样,ansible也有自己的状态管理组件 ...

  4. 【128】Word中的VBA

    通过查找关键字,然后删除整段文字的实现! Sub 删除查找含关键词的行() Dim KeyWord As String KeyWord = InputBox("请输入关键词(词长不限,中英均 ...

  5. fixed定位兼容性

    不过从ios5.1以来,fixed定位就已经支持了,但很遗憾,ios现在对它还只是半支持. 但是在某些情况下,会出现一些比较奇葩的问题,比如fixed元素中存在输入框子元素,这个时候就会跪了. 可以看 ...

  6. Button标签自动刷新问题

    在form表单中,button标签在IE浏览器 type类型默认是button ,而在其他浏览器默认是submit. 解决方法1: 设置类型type="button" <bu ...

  7. Centos搭建NFS服务及客户端访问

    一.环境介绍 NFS服务端:192.168.200.101 NFS客户端:192.168.200.102 二.服务器端安装配置 1.查看rpcbind和nfs-utils安装包是否安装 [root@b ...

  8. HttpContext&period;Current&period;Items的用途

    HTTP是一个无状态的协议.每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况.而实际上,我们的系统往 ...

  9. 利用目录函数&lpar;opendir&comma;readdir&comma;closedir&rpar;查找文件个数

    如何知道一个目录下的所有文件个数呢?或许可以用tree来学(zhuang)习(bi)的同时知道文件个数.Linux系统io函数为我们提供了目录操作函数,其中有一个比较重要(实际上有三个,因为它们经常配 ...

  10. 使用向量化的 if:ifelse

    进行分支计算的一个替代方法是 ifelse( ).这个函数接收一个逻辑向量作为判定条件,并且返回一个向量.对于逻辑判定条件内的每一个元素,若是 TRUE,则选择第 2个参数 yes 中所对应的元素:若 ...