处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情况下访问通讯录,相册等)。】
通过代码,NSString *path = NSHomeDirectory();获取到的就是应用程序的路径。在该路径下有3个文件夹:Documents、Library、Tmp。应用程序只能访问该路径下的文件夹。
1、Documents
用户的应用程序数据应该放在该文件夹下,该文件夹下的数据可以被iTunes 备份
2、Library
这个目录下又包含两个子目录。
Preferences 目录:包含应用程序的偏好设置文件。
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
该目录下的文件,除了Caches目录,都可以被iTunes 备份
3、Tmp
用于存放临时文件,应用程序下次启动前,该目录下的文件不会保存,也不会被iTunes 备份
下面是这些目录的获取方式
// 获取沙盒主目录路径
NSString*homeDir =NSHomeDirectory();
// 获取Documents目录路径
NSString*docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
// 获取Library的目录路径
NSString*libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];
// 获取Caches目录路径
NSString*cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];
// 获取tmp目录路径
NSString*tmpDir =NSTemporaryDirectory();
或者是
NSString *fileName=[NSHomeDirectory() stringByAppendingPathComponent:@"tmp/myFile.txt"];
网友评论