沙盒

作者: 有一种再见叫青春 | 来源:发表于2016-11-04 15:20 被阅读8次

ios程序为沙盒机制,App只能访问自己目录下的文件,不能直接访问其他目录内容,每个APP默认都会创建以下目录结构Doucments Library tmp

<li>Documents:存放应用程序产生的数据,会被iturns备份同步</li>
<li>Library:包含二个子目录:Cache 和 Preferences</li>
<ol> Preferences: 包含应用程序的偏好设置文件.可以使用NSUserDefaults类来获取和设置程序的偏好,会被iturns同步</ol>
<ol>Caches : 用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息,不会被iTunes备份同步</ol>
<li>tmp: 存放临时数据,当不在用时应该删除掉临时文件,系统也有可能在程序不运行时删除该文件夹下内容</li>

获取目录方法

Documents目录

<pre>`

NSArray *documrntDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathfile = documrntDirectory.firstObject;

`</pre>

获取Library路径

<pre>`NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);

NSString*path=[paths objectAtIndex:0];

NSLog(@"path:%@",path); `</pre>

获取Caches路径

<pre>`NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString*path=[paths objectAtIndex:0];

NSLog(@"path:%@",path);`</pre>

获取tmp路径

<pre>`NSString*tmp=NSTemporaryDirectory();

NSLog(@"tmp:%@",tmp);
`</pre>

文件写入

<pre>`
NSArray *documrntDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathfile = documrntDirectory.firstObject;
[pathfile stringByAppendingPathComponent:@"feng.txt"];

BOOL  ishave =  [[NSFileManager defaultManager]fileExistsAtPath:pathfile];
if (!ishave) {
    NSLog(@"aleady have");
    return;
}
 
NSString *str  = @"im the king of the world";
NSData *data  = [NSData dataWithContentsOfFile:str];
BOOL result = [data writeToFile:pathfile atomically:YES];
if (result) {
    NSLog(@"success");
    
}else
{
    NSLog(@"fail");
}

`</pre>

文件读取

<pre>`
NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [documentsPathArr lastObject];
// 拼接要写入文件的路径
NSString *path = [documentsPath stringByAppendingPathComponent:@"feng.txt"];
// 从路径中读取字符串
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", str);

`</pre>

得到沙盒下所有文件

<pre>`NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *document=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) .lastObject];
NSString *feng =[document stringByAppendingPathComponent:@"feng"];
NSArray *fileList ;
fileList =[fileManager contentsOfDirectoryAtPath:folder error:NULL];

for (NSString *file in fileList) {
    NSLog(@"file=%@",file);
    NSString *path =[folder stringByAppendingPathComponent:file];
    NSLog(@"得到的路径=%@",path);
}

`</pre>

相关文章

  • IOS沙盒 - OC

    沙盒: 沙盒包含: 沙盒路径获取的方法:

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • 沙盒

    1、沙盒 程序只能访问自己的沙盒 NSHomeDirectory() 访问沙盒路径 沙盒下有三个目录:Docume...

  • iOS 系统相关复习

    沙盒 iOS沙盒详细介绍iOS沙盒篇 沙盒机制介绍 iOS中的沙盒机制是一种安全体系。为了保证系统安全,iOS每个...

  • iOS开发之沙盒机制

    沙盒 iOS系统,每个应用都有自己的沙盒,每个沙盒都是相互独立的,不能互相访问。 获取沙盒路径的代码: NSHom...

  • 数据持久化存储

    沙盒 iOS程序默认情况下只能访问自己的目录,这个目录被称作沙盒 沙盒结构 沙盒结构主要为 DocumentLib...

  • iOS的永久话储存

    沙盒:IOS应用中每个应用均有自己沙盒,用来储存APP自己的数据,每个应用的沙盒均是应用特有的不能交叉访问。 沙盒...

  • iOS沙盒解析及操作

    介绍 概念:每个应用拥有自己的应用沙盒,所谓的应用沙盒就是文件系统目录。 沙盒文件目录 沙盒操作 获取应用根目录 ...

网友评论

      本文标题:沙盒

      本文链接:https://www.haomeiwen.com/subject/byxwuttx.html