iOS之沙盒机制与文件

1.iOS沙盒机制

1.1、iOS应用程序只能在为该程序中创建的文件系统中读取文件,不可以去其它目录进行访问,这个区域被称之为沙盒。

1.2、每个APP只能在自己APP的沙盒进行读写文件,不能访问其他APP的沙盒文件。

1.3、iOS模拟器沙盒地址为 资源库/Application Support/iPhone Simulator/**。

2.沙盒目录结构

2.1、沙盒目录初始化有三个目录文件夹,分别是:Documents, Library 和 tmp。

2.2、各个目录的结构和说明:

Documents:iTunes备份和恢复的时候会包括此目录

Library:存储程序的默认设置或其它状态信息;

Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

tmp:提供一个即时创建临时文件的地方。

iTunes在与iPhone同步时,备份所有的Documents和Library文件。

特别说明:在iPhone在重启的时候,会删除/丢弃所有在tmp文件夹里面的文件。

3.沙盒各个目录访问:

3.1、获取程序的Home目录

NSString *homeDirectory = NSHomeDirectory();

NSLog(@"path:%@", homeDirectory);

3.2、获取document目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentpath = [paths objectAtIndex:0];

NSLog(@"path:%@", documentpath);

3.3、获取Cache目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *Cache = [paths objectAtIndex:0];

NSLog(@"%@", Cache);

3.4、获取Library目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

NSString *Librarypath = [paths objectAtIndex:0];

NSLog(@"%@", Librarypath);

3.5、获取Tmp目录

NSString *tmpDir = NSTemporaryDirectory();

NSLog(@"%@", tmpDir);

3.6、写入文件

NSArray *array = [[NSArray alloc] initWithObjects:@"写入内容",@"content",nil];

[array writeToFile:filePath atomically:YES];

4.文件管理

4.1、创建文件管理器

NSFileManager * fileManager = [NSFileManager defaultManager];

NSString * documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

NSString * filePath = [documents stringByAppendingPathComponent:@"test"];

// 判断一个文件是否存在,传入全路径

if ([fileManager fileExistsAtPath:filePath]) {

NSLog(@"it is exit");

}

4.2、获取目录列里所有文件名

4.2.1、有两种方法可以获取:subpathsOfDirectoryAtPath 和subpathsAtPath

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSLog(@"documentsDirectory%@",documentsDirectory);

NSFileManager *fileManage = [NSFileManager defaultManager];

NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@"test"];

NSArray *file = [fileManage subpathsOfDirectoryAtPath: myDirectory error:nil];

NSLog(@"%@",file);

NSArray *files = [fileManage subpathsAtPath: myDirectory ];

NSLog(@"%@",files);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、 沙盒概念基本介绍 iOS 应用程序只能在该 app 的文件系统中读取。这个默认的 app 文件系统就是我们说...
    Laughingg阅读 7,756评论 2 10
  • 1.iOS 沙盒机制简介 沙盒也叫沙箱,英文standbox,其原理是通过重定向技术,把程序生成和修改的文件定向到...
    软件iOS开发阅读 1,846评论 0 0
  • 1.iOS 沙盒机制简介 沙盒也叫沙箱,英文standbox,其原理是通过重定向技术,把程序生成和修改的文件定向到...
    刹那年华逝阅读 10,673评论 5 1
  • 头脑一热领了个写作任务,作文零起步呀,看的人一定很难想象这是一中年人写的蹩脚文字。在搂娃睡觉的时候想想过去的...
    lvy加惠阅读 1,651评论 0 0
  • 1.前言软件界面如下: 分为官方测试和真实开发项目的两种情况 2.导入微信和支付宝的sdk 3.导入依赖库 4.编...
    cj2527阅读 5,279评论 1 3