概述
bundle(沙盒):一个应用只能在自己的沙盒中读取或存储文件,而不能操作其他沙盒中的文件。好处:保护应用的隐私不受侵犯,保护系统文件的安排,应用删除后相关文件也能被全部清除。
每个应用都有自己的沙盒,沙盒的根目录的获取方法是NSHomeDirectory()。
根目录下的内容:
.app文件,实际上是一个文件夹,包含了可执行文件、Nib文件、图片资源、plist等。XCode中能看到的资源,及编译后的可执行文件,都封装在app中。
Documents文件夹,用于存放你的应用所产生的数据,该文件夹可通过iTunes备份,可以存储游戏进度等。
Library文件夹,用于存放用户偏好和临时文件。
tmp文件夹是系统的中转站。
文件管理器
NSFileManager,defaultManager()返回一个文件管理器的对象(在多线程下不安全)。
在多线程编程中应尽量使用init()。
代理方法:-fileManager:shouldRemoveItemAtPath和-fileManager:shouldRemoveItemAtURL在移除操作之前被调用。
-removeItemAtPath:error:删除位于指定路径的文件、连接、目录(及其所有子目录、文件)。
-removeItemAtURL:error:同上。
-contentOfDirectoryAtPath:查找所有位于给定路径的子路径和文件。返回值为一个数组,其中包含了NSString对象。查找只在当前目录进行,不会进入下一层目录。
-subpathsAtPath:查找给定路径下的所有子路径,返回一个数组, 深度查找,不限于当前层,也会查找package的内容。
-fileExistsAtPath:判断文件是否位于一个路径下面。
-isReadableFileAtPath:查询文件的可读性
-isWritableFileAtPath:可写性
-isExecutableFileAtPath:查询文件的可执行性
-isDeletableFileAtPath:可删除性
NSString的路径功能
-pathWithComponent:参数是一堆components构成的数组,返回的路径是由这些components连接而成的路径字符串,相邻components之间用/隔开。
-pathComponents:返回一个数组,包含路径中的components。
-fileSystemRepresentation:返回C字符串
-isAbsolutePath:判断是否为绝对路径
-pathExtension:返回文件的扩展名,没有的就返回空字符串
-stringByAppendingPathComponents :向现有路径添加一个component。斜杠/会被自动加上
-stringByAppendingPathExtension:向现有路径加上文件的扩展名
-stringByDeletingLastPathComponent:移除最后一个路径component
-stringByDeletingPathExtension:删除路径扩展名
-stringByAppendingPaths:参数为一个数组,此方法将数组中的字符串对象作为路径一次添加到源字符串后面。
EG:
NSString *homePath = NSHomeDirectory();
NSString *docPath = [homePath stringByAppendingFormat:@"/Documents"];