(sandbox)沙盒文件获取总结

来源:互联网 发布:数控切割机编程实例 编辑:程序博客网 时间:2024/04/28 19:20
因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:
Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除

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

     (1)、应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。    (2)、应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。    (3)、苹果禁止任何读、写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中。    (4)、沙盒根目录里有三个文件夹:Documents,一般应该把应用程序的数据文件存到这个文件夹里,用于存储用户数据或其他应该定期备份的信息。Library,下有两个文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序偏好设置文件,不过不要在这里修改偏好设置。temp,存放临时文件,即应用程序再次启动不需要的文件。



第一:获取Documents Library tmp三个文件夹路径
[code]
+ (NSString *) folderForHome{
return NSHomeDirectory();
}
+ (NSString *) folderForDocument{
return [[self folderForHome] stringByAppendingPathComponent:@"Documents"];
}
+ (NSString *) folderForLibrary{
return [[self folderForHome] stringByAppendingPathComponent:@"Library"];
}
+ (NSString *) folderForTmp{
return [[self folderForHome] stringByAppendingPathComponent:@"tmp"]
[/code]


第二:获取文件路径




复制代码
+ (NSString *) pathForBundle:(NSString *)name type:(NSString *)type{
return [[NSBundle mainBundle] pathForResource:name ofType:type];
}
+ (NSString *) pathForDocument:(NSString *)name{
return [[self folderForDocument] stringByAppendingPathComponent:name];
}
+ (NSString *) pathForLibrary:(NSString *)name{
return [[self folderForLibrary] stringByAppendingPathComponent:name];
}
+ (NSString *) pathForTmp:(NSString *)name{
return [[self folderForTmp] stringByAppendingPathComponent:name];
}
 
0 0