iOS开发之沙盒机制(SandBox)详细讲解了沙盒的一些机制。在开发中,我们需要对沙盒进行操作,所以我们需要获取到沙盒路径。
沙盒里的文件夹包括Documents、Library、tmp。这三个文件夹的作用请点击这里。(文件夹的作用 如下:)接下来我们来讲解如何获取Documents、Library、tmp的路径。
获取沙盒根目录
获取沙盒根目录,直接调用NSHomeDirectory():
//获取沙盒根目录
NSString*directory=NSHomeDirectory();
NSLog(@"directory:%@",directory);
控制台输出:
2015-07-2200:40:16.185iOSStrongDemo[1605:555658]directory:/var/mobile/Containers/Data/Application/F9418815-51A9-4A0A-A76C-6FD37C400928
这个是真机的路径,大家有时间的话可以看看模拟器的根目录路径。
获取Documents路径
获取Documents路径如下:
//获取Documents路径
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制台输出:
2015-07-2200:41:41.397iOSStrongDemo[1613:556159]path:/var/mobile/Containers/Data/Application/A62B886B-A8F0-4215-B59D-1F505C3997BD/Documents
获取Documents文件夹目录,第一个参数是说明获取Doucments文件夹目录,第二个参数说明是在当前应用沙盒中获取。
获取Library路径
//获取Library路径
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制台输出:
2015-07-2200:43:15.803iOSStrongDemo[1619:556638]/var/mobile/Containers/Data/Application/17300507-4643-4DE7-BC68-E13DB19C8D98/Library
获取Caches路径
//获取Caches路径
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制台输出:
2015-07-2200:44:31.383iOSStrongDemo[1626:557083]path:/var/mobile/Containers/Data/Application/1E945B52-E29D-4041-A489-1AA1B11BB960/Library/Caches
获取tmp路径
NSString*tmp=NSTemporaryDirectory();
NSLog(@"tmp:%@",tmp);
控制台输出:
2015-07-2200:46:07.846iOSStrongDemo[1632:557537]tmp:/private/var/mobile/Containers/Data/Application/4BE02307-1CC5-47E8-BEA8-CEBB7ED5A402/tmp/
以上是iOS开发中获取沙盒路径的方法,也许还有更好的获取方法等待我们去发现。后面我们还会讲到关于在沙盒里进行读写文件操作。
移除沙盒路径的某个文件或者某个文件夹
ios 下创建,删除文件夹的方法
2011-11-11 15:05:42| 分类:iphone 笔记
创建文件夹:
NSString*imageDir = [NSStringstringWithFormat:@"%@/Caches/%@",NSHomeDirectory(), dirName];
BOOLisDir =NO;
NSFileManager*fileManager = [NSFileManagerdefaultManager];
BOOLexisted = [fileManagerfileExistsAtPath:imageDirisDirectory:&isDir];
if( !(isDir ==YES&& existed ==YES) )
{
[fileManagercreateDirectoryAtPath:imageDirwithIntermediateDirectories:YESattributes:nilerror:nil];
}
删除文件夹及文件级内的文件:
NSString*imageDir = [NSStringstringWithFormat:@"%@/Caches/%@",NSHomeDirectory(), dirName];
NSFileManager*fileManager = [NSFileManagerdefaultManager];
[fileManagerremoveItemAtPath:imageDirerror:nil];
沙盒机制简介
沙盒简述:
每一个APP都有一个存储空间,就是沙盒。
APP之间不能相互通信。
沙盒根目录结构:Documents、Library、temp。
简述一下Documents、Library、tmp的区别:
Documents:用于存储用户数据,iTunes备份和恢复的时候会包括此目录,所以,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下。
Library:包含两个子目录:Caches 和 Preferences。Caches用来存放用户需要换成的文件。Preferences是APP的偏好设置,可以通过NSUserDefaults来读取和设置。
tmp:用于存放临时文件,这个可以放一些当APP退出后不再需要的文件。