1,主目录(沙盒的路径)
NSString *homeDir = NSHomeDirectory();
2,Documents路径
第一种获取方法
- Documents跟用户个人有关的文档,iTunes、iCloud可以”备份”手机 -> 自动备份Documents目录中的文件
- 保存应用程序自身生成的数据文件,从网络上下载的文件,不要保存在此文件夹中!
NSString *docDir1 = [homeDirstringByAppendingPathComponent:@"Documents"]; NSLog(@"%@", docDir1);
第二种获取方法
- 专业方法,在OC开发中,一般如果遇到使用函数,这个函数通常是iOS和MAC通用的!
- 苹果是闭源的系统为了防止苹果调整文档目录的名称,使用下面方法
/** 参数 1. NSDocumentDirectory搜索路径的类型 2. NSUserDomainMask 在iOS上固定的 3. 是否展开波浪号 YES */ NSString *docDir2 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject]; NSLog(@"%@", docDir2);
容易混淆的获取方法
- 默认情况下,Documentation是不存在的,如果要使用,需要自己创建!
- 如果没有创建这个目录,往其中写文件,iOS不会报任何错误!
NSString *errorDir = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask,YES)lastObject]; NSLog(@"%@", errorDir);
3,Caches路径
- Caches缓存目录,通常保存从网络下载的文件,提供用户离线观看,重新启动,不会被清空
- 程序员需要提供清理缓存的功能:包括程序清理,检查过期数据,同时提供用户手动清理缓存的操作!
NSString *cacheDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)lastObject];
NSLog(@"%@", cacheDir);
4,tmp路径
- tmp目录,通常保存从网络上下载的文件,不需要持久保存,手机重新启动,就会清空
NSString *tmpDir =NSTemporaryDirectory();
NSLog(@"%@", tmpDir);
5,Preferences路径
- Preferences偏好设置目录,保存手机常用设置信息,用户的个人信息,例如用户名,密码
- 直接使用setXXX方法赋值即可,无需获得路径
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
[defaults setObject:@"rose"forKey:@"UserName"];
[defaults setBool:YESforKey:@"AutoLogin"];
- 默认情况下,往偏好设置保存数据,更新的非常慢,如果需要及时保存,需要使用一个同步方法
[defaults synchronize];