iOS: 沙盒的详解和目录的获取
沙盒的详解:
•iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒
NSString *homePath = NSHomeDirectory();
2.获取Documents目录,有两种方式:
方式一:通过函数的形式获取(Domains:表示一个搜索域,就是手机的存储区域)
NSArray *directorys = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [directorys lastObject];
方式二:通过拼接字符串的形式获取(不建议采用字符串拼接的方式获取目录,因为新版本的操作系统可能会修改默认目录名称)
NSString *documentsPath2 = [homePath stringByAppendingPathComponent:@"Documents"];
NSArray *caches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesPath = [caches lastObject];
4.通过函数获取临时目录
NSString *tmp = NSTemporaryDirectory();
5.NSBundle对象:图片、xib、storyboard、plist文件都是放在应用程序包里的
NSBundle *bundle = [NSBundle mainBundle];
//获取包中的文件的路径
NSString *path= [bundle pathForResource:@"array" ofType:@"plist"];
//加载包里xib文件
NSArray *views = [bundle loadNibNamed:@"cell" owner:self options:nil];
提示:获取目录不是目的,获取目录为了在该目录对文件进行操作,例如创建文件并存储数据
6.创建文件
//创建文件管理对象
NSFileManager *fm = [NSFileManager defaultManager];
//创建文件
const char *pt = "how are you";
NSString *fileName = [documentsPath stringByAppendingPathComponent:@"1.txt"];
NSData *data = [NSData dataWithBytes:pt length:strlen(pt)];
//NSString *str = @"how are you";
//NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
if([fm createFileAtPath:fileName contents:data attributes:nil])
{
NSLog(@"文件创建成功");
}
7.读取文件
//直接读
NSError *error = nil;
NSStringEncoding enc = 4/*NSUTF8StringEncoding*/;
NSString *str2 = [NSString stringWithContentsOfFile:fileName usedEncoding:&enc error:&error];
if(!error)
{
NSLog(@"str2:%@",str2);
}
else
{
NSLog(@"读取失败,%@",error);
}
iOS: 沙盒的详解和目录的获取的更多相关文章
- iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)
转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下 ...
- dbdeployer MySQL沙盒部署详解
一.工具介绍 前几日用mysql-sandbox来搭建MySQL8.0新版本时发现用不了,提示需要使用dbdeployer才行,瞬间觉得mysql-sandbox不香了,只好咬咬牙来熟悉dbdeplo ...
- iOS 沙盒目录结构介绍
iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件.当然,在用户授权的情况下,应用也可以访问其他目录下面的文件.比如,用户授权情况下,应用可以访问相册.通讯录.在开发中,经 ...
- iOS 沙盒目录结构及正确使用
前言:处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等),这个规则展示了iOS系统的封闭性.在开发中常常需要数据存储的功 ...
- iOS--浅谈iOS沙盒目录
原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文 ...
- iOS - 沙盒与目录
NSFileManager NSBundle Class Cluster 采用Tagged Pointer的字符串 NSPathStore iOS证书ipa包重签名探究 url 结构 1. iOS 沙 ...
- iOS沙盒目录结构解析
iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应 ...
- iOS沙盒目录
出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...
- IOS沙盒Files目录说明和常用操作
Ios沙盒目录清单 1 Documents 用于存储用户生成的文件.其他数据及其他程序不能重新创建的文件,默认文件通过iCloud自动备份.如果不需要iCloud备份,则设置标记 NSURLIsExc ...
随机推荐
- yii2 DateTimePicker显示到天
扩展是 kartik\datetime\DateTimePicker; 关键是加入此配置 'minView'=> "month",示例如下: <?php echo D ...
- Redis实战配置(三)
程序配置 我们安装好了Redis的系统服务,此时Redis服务已经运行. 现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web.config文件中添加如下信息: ...
- 【C#】Lamada表达式演变过程
static void Main() { //第一步 委托实例调用 Func<string, int> test = new Func<string, int>(getLeng ...
- HDU 6060 RXD and dividing(dfs 思维)
RXD and dividing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- nyoj 737 石子合并 http://blog.csdn.net/wangdan11111/article/details/45032519
http://blog.csdn.net/wangdan11111/article/details/45032519 http://acm.nyist.net/JudgeOnline/problem. ...
- BZOJ4551 HEOI2016树
可以用并查集,记忆化搜索,线段树多种方法实现. 我这里写的是依照dfs序建线段树,维护区间最大值. #include<bits/stdc++.h> using namespace std; ...
- Codeforces 650 D. Zip-line
$ >Codeforces \space 650 D. Zip-line<$ 题目大意 : 有一个长度为 \(n\) 的序列 \(h\) ,\(m\) 次询问,每一次询问求如果把序列中第 ...
- POJ 3974 Palindrome 字符串 Manacher算法
http://poj.org/problem?id=3974 模板题,Manacher算法主要利用了已匹配回文串的对称性,对前面已匹配的回文串进行利用,使时间复杂度从O(n^2)变为O(n). htt ...
- 【推导】【线段树】hdu5929 Basic Data Structure
题意: 维护一个栈,支持以下操作: 从当前栈顶加入一个0或者1: 从当前栈顶弹掉一个数: 将栈顶指针和栈底指针交换: 询问a[top] nand a[top-1] nand ... nand a[bo ...
- [AtCoder-ARC073F]Many Moves
题目大意: 有一排n个格子和2枚硬币. 现在有q次任务,每一次要你把其中一枚硬币移到x的位置上,移动1格的代价是1. 两枚硬币不能同时移动,任务必须按次序完成. 现在告诉你两枚硬币初始状态所在的位置a ...