1、用户的数据保存在Library的子目录
/var/mobile/Containers/Data/Application/0AF8EA2D-6E55-4DB7-87EA-CD05CC485A08/Library/Caches/Qiniu/PersonalLocal
Documents目录用于保存不可再生的文件,可再生的数据文件应该存放在Library/Cache目录下。
Library/:顶级目录,没有用户数据,不提供给用户使用,含有几个标准的子目录,当然可以创建自定义子目录
use this directory to store data files, caches, resources, preferences喜好, and even user data in some specific situations.
Library/Preferences
Library/Caches
Documents 目录:用户可以用来写入并保存文件得地方,提供给用户使用
tmp 目录我们可以在里面写入一些程序运行时需要用得数据,里面写入得数据在程序退出后会没有
沙盒机制不允许A访问B沙盒中的文件,所以有Documents/Inbox存在
解决:外部应用A请求当前应用打开存放在沙盒A中的文件
将A中的文件拷贝一份到当前应用程序的Documents/Inbox目录中
app与系统文件交互主要限制在应用程序的沙盒目录中
安装一个应用程序的时候,安装程序会为应用程序创建一定数量的containers
每个containers都有特定的功能
bundle container:存放应用程序的bundle资源包---contains the app and all of its resources
data container:存放应用程序与用户的数据
data container进一步被分为:
禁止访问或者创建containers以外的文件夹
例外:使用系统公共接口访问用户的联系人或者音乐
+ (void)saveImageToLocal:(UIImage *)image fileName:(NSString *)fileName fileType:(NSInteger)fileType
{
NSString *filePath = nil;
if (StockImageType == fileType)
{
filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"StockLocal"];
}
else
{
filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"PersonalLocal"];
}
if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
[[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
}
filePath = [filePath stringByAppendingPathComponent:fileName];
if (image) {
NSData *data = UIImagePNGRepresentation(image);
[data writeToFile:filePath atomically:YES];
}
}
NSString *filePath = nil;
if (StockImageType == fileType)
{
filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"StockLocal"];
}
else
{
filePath = [[self getCommonFilePath] stringByAppendingPathComponent:@"PersonalLocal"];
}
NSLog(@"%@",filePath);
if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
[[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
}
filePath = [filePath stringByAppendingPathComponent:fileName];
return [[NSFileManager defaultManager] fileExistsAtPath:filePath];
网友评论