沙盒(sandbox) 及 NSFileManager

每个APP程序只能在自己创建的文件系统区域中读取文件,此区域称为沙盒。所有的非代码文件都存储在此区域。

 

模拟器沙盒目录

1.    前往文件夹:/Users/XX(用户)/Library/Developer/CoreSimulator/Devices/,如图1所示

沙盒(sandbox) 及 NSFileManager_第1张图片

图1

2.查看Devices文件夹中“device_set.plist”文件,找到具体的模拟器,如图2所示。

沙盒(sandbox) 及 NSFileManager_第2张图片

图2

3.进入到模拟器文件夹后,查看到文件结构如图3所示。

沙盒(sandbox) 及 NSFileManager_第3张图片

图3

 

文件夹/目录

说明

iTunes备份和恢复

重启

Documents

一般用于存放应用中建立的文件,如数据库

包含

保存

Library

存储应用的默认设置及状态信息

包含

保存

Library/cache

用来存放缓存文件

不包含

保存

Tmp

临时文件夹

不包含

清除

 


Bundle与sandbox区别

1.    目录获取

bundle:

[[NSBundlemainBundle] pathForResource:@"MyPlist" ofType:@"plist"];

sandbox:

获取程序的Home目录
NSString*homeDirectory = NSHomeDirectory();
         
获取document目录
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *path =[paths objectAtIndex:0];
	 
获取Cache目录
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path =[paths objectAtIndex:0];
	 
获取Library目录
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path =[paths objectAtIndex:0];
	 
获取tmp目录
NSString *tmpDir= NSTemporaryDirectory();

 

2 内容存放

Bundle一般存放APP的可执行文件和资源文件(图像,图标等)

Sandbox 只是说明程序资源与外界隔离

 

NSFileManager

文件操作可使用NSFileManager类。

NSFileManager*fileManager = [NSFileManager defaultManager];
//更改到待操作的目录下
NSString*documentsDirectory = @"";//目录
[fileManagerchangeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];
//创建文件
createFileAtPath
//删除文件
removeItemAtPath

更多内容可查看苹果官方文档

你可能感兴趣的:(ios)