一、 Documents
用于存储用户生成的文件、其他数据及其他程序不能重新创建的文件,默认文件通过
iCloud自动备份。如果不需要
iCloud备份,则设置标记
NSURLIsExcludedFromBackupKey
,注明不备份
1.1 读取Documents目录代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
1.2 标记不备份文件
+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
二、 Library
存储项目缓存
,常用设置等
2.1 读取Cache目录代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"%@", path);
2.2 读取Library目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"%@", path);
三、 temp
只是临时使用的数据应该保存到
<Application_Home>/tmp 文件夹。尽管
iCloud 不会备份这些文件,但在应用在使用完这些数据之后要注意随时删除,避免占用用户设备的空间
3.1读取temp文件夹
NSString *tmpDir = NSTemporaryDirectory();
NSLog(@"%@", tmpDir);
四、项目自带的.bundle资源束
项目自带的资源存放在
.bundle中这些资源只读不能写
NSString *defaultDBPath = [[NSBundle mainBundle] resourcePath];