在iPhone的沙箱模型有四个文件夹,分别是documents、tmp、app、library。
创建文件的时候会先创建文件的路径,方法如下:
1、Documents:这是文档目录。有关应用的所有数据文件应该写入到这个目录下,这个目录用于存储用户数据或者其他应该定期备份的信息。
获取Documents目录路径的方法:
NSString*documentPath = NSSearchPathForDirectoriesInDomains ( NSDocumentDirectory , NSUserDomainMask , YES ).firstObject;
这里的firstObject改成lastObject也可以,因为该目录下只有一个文件夹。
2、AppName.app:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
获取AppName.app 目录路径:
NSString *path = [[NSBundlemainBundle]bundlePath];
3、Library:库目录。这个目录下面还有两个子目录:Caches 和 Preferences
Caches目录:
缓存目录。用于存储应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
Perferences目录:
包含应用程序的编号设置文件,存放NSUserDefaults保存的.plist文件。iTunes同步该应用时会同步该文件夹中的内容。
NSUserDefaults *userDefaults = [NSUserDefaultsstandardUserDefaults];
//直接调用方法就能保存入偏好设置里面
[userDefaults setObject:@"hello"forKey:@"hello"];
[userDefaults synchronize];
4、Library/Application Support目录:
[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0];
5、tmp:临时文件夹。iTunes不会同步此文件夹,里面存的是临时文件,随时可以被删除,一般不怎么用
NSString *tmppath = NSTemporaryDirectory();
6、获取沙盒主目录路径
NSString*homePaht =NSHomeDirectory();
常见的NSFileManager文件方法