沙盒路径:每次的沙盒路径是变的,每次运行程序时位置是不同的,手机为每一个应用建立一个沙盒路径,默认四个文件夹
(1).Documents 这里边存的数据会被上传,所以不要把大的文件存放在这里(比如说音频,视频文件)
(2).Library -> Caches ,缓存文件,随便存
(3).Library ->Perferences 这里边一般存的是一些设置
(4).tmp ,存的是一些临时文件(比如说下载ZIP文件放在这里,解压后就会被干掉)
//得到沙盒主路径
NSString *filePathSandBox = NSHomeDirectory();
NSLog(@"%@",filePathSandBox);
得到Documents 的路径:
NSString *filePathDocuments = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
NSLog(@"%@",filePathDocuments);
得到Library目标路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
NSLog(@"app_home_lib: %@",libraryDirectory);
得到Caches路径:
//得到Caches 路径
NSString *filePathCaches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
NSLog(@"%@",filePathCaches);
得到tmp的路径;
NSString *filePathTmp = NSTemporaryDirectory();
NSLog(@"%@",filePathTmp);
向沙盒中存储数据
存简单对象(NSString,NSArray ,NSDictionary,UIImage)
//NSString
NSString *string = @"哈喽哈喽哈喽,字符串";
NSString *pathCaches = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
//拼接文件,caches下面加一个txt文件用来存放字符串
NSString *newPathCaches = [pathCaches stringByAppendingPathComponent:@"Wang.txt"];
//NSUTF8StringEncoding编码格式,把数据写入txt文件
[string writeToFile:newPathCaches atomically:YES encoding:NSUTF8StringEncoding error:nil];
//取数据
NSString *ss = [NSString stringWithContentsOfFile:newPathCaches encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",ss);
定义一个数组:
NSArray *arrayPathCacher = @[@"村眠不觉晓",@"处处闻啼鸟",@"也来哦冯玉凤",@"花落知多少" ];
//得到tmp的路径
NSString *tmp = NSTemporaryDirectory();
NSString *Newtmp = [tmp stringByAppendingString:@"wang.plist" ];
[arrayPathCacher writeToFile:Newtmp atomically:YES];
//取数组
NSArray *arr = [NSArray arrayWithContentsOfFile:Newtmp];
NSLog(@"%@",arr);
定义一个字典:
NSDictionary *dicPathCacher = @{
@"name":@"www",
@"sex":@"f"
};
NSString *tmp1 = NSTemporaryDirectory();
NSString *tmpfile = [tmp1 stringByAppendingString:@"hehe.plist"];
[dicPathCacher writeToFile:tmpfile atomically:YES];
定义一个image:
UIImage *image = [UIImage imageNamed:@"1.png"];
NSData *data = UIImagePNGRepresentation(image);
NSString *newTmp2 = [NSTemporaryDirectory()stringByAppendingString:@"data.png"];
[data writeToFile:newTmp2 atomically:YES];
创建文件夹:
#pragma mark - NSFileManager
//创建NSFileManager对象
NSFileManager *manager = [NSFileManager defaultManager];
NSString *stringWYY =[ NSTemporaryDirectory()stringByAppendingString:@"/YY111"];
///在上面路径下创建文件夹
[manager createDirectoryAtPath:stringWYY withIntermediateDirectories:YES attributes:nil error:nil];
//移动文件夹
NSString *stringWYY2 = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject stringByAppendingString:@"/YY111"];
[manager moveItemAtPath:stringWYY toPath:stringWYY2 error:nil];
//删除文件夹
[manager removeItemAtPath:stringWYY2 error:nil];
//判断文件夹是否存在吗
BOOL ifExis = [manager fileExistsAtPath:stringWYY2];
NSLog(@"%@",ifExis);
//复制
NSString *str = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES).lastObject stringByAppendingString:@"/YY111"];
[manager copyItemAtPath:stringWYY2 toPath:str error:nil];