====== IOS App Sandbox Folder ====== 在iPhone的沙箱模型有四个文件夹,分别是: * documents * tmp * app * library 创建文件的时候会先创建文件的路径 ===== - 文档目录 Documents ===== iPhone会为每一个应用程序生成一个私有目录,这个目录位于: /Users/sundfsun2009/Library/Application Support/iPhone Simulator/User/Applications下, 并随即生成一个数字字母串作为目录名,在每一次应用程序启动时,这个字母数字串都是不同于上一次。有关应用的所有数据文件应该写入到这个目录下,这个目录用于存储用户数据或者其他应该定期备份的信息。 * 获取Documents目录路径的方法 NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES ).firstObject; // Swift let ducumentPath = NSHomeDirectory() + "/Documents" * 注: 上面NSDocumentDirectory参数一位置:directory为获取哪个文件夹 NSUserDomainMask 参数二位置:domainMask为在哪个范围内搜索,NSUserDomainMask 表示在用户的手机上查找 YES 参数三位置:expandTilde为是否展开全路径。YES:表示展开全路径;NO:不会展开全路径,会把应用沙盒的路径用波浪号(~)代替 ===== - 库目录 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]; ===== - 临时文件夹 tmp ===== iTunes不会同步此文件夹,里面存的是临时文件,随时可以被删除,一般不怎么用 NSString *tmppath = NSTemporaryDirectory(); ===== - 沙盒主目录路径 ===== NSString* homePaht = NSHomeDirectory(); NSSearchPathForDirectori esInDomains(“想要查找的目录”,“想要从哪个路径区域保护区查找”) 查找的区域: typedef NS_OPTIONS(NSUInteger, NSSearchPathDomainMask) { NSUserDomainMask =1, // 用户的主目录 NSLocalDomainMask =2, // 当前机器的本地目录 NSNetworkDomainMask =4, //在网络中公开可用的位置 NSSystemDomainMask =8, // 被苹果系统提供的,不可更改的位置 (/System) NSAllDomainsMask = 0x0ffff // 上述所有及未来的位置 }; 想要查找的目录: NSApplicationDirectory =1, // 到applications (Applications)目录下 NSDemoApplicationDirecto ry, // 到Applications/Demos目录下 NSDeveloperApplicationDi rectory, // 到Developer/Applications目录下. NSAdminApplicationDirect ory, // 到Applications/Utilities目录下 NSLibraryDirectory, // 到Library目录下 NSDeveloperDirectory, // 到Developer目录下. NSUserDirectory, // 到用户的主目录下 NSDocumentationDirectory , // 到documentation (Documentation)的目录下 NSDocumentDirectory, // 到documents (Documents)目录下 NSCoreServiceDirectory, // CoreServices目录的位置 (System/Library/CoreServices) NSAutosavedInformationDi rectory NS_ENUM_AVAILABLE(10_6, 4_0) =11, // 自动保存的文档位置(Documents/Autosaved) NSDesktopDirectory =12, // 本地用户的桌面 NSCachesDirectory =13, // 本地缓冲区目录(Library/Caches) NSApplicationSupportDire ctory =14, // 本地应用支持文件目录 (plug-ins, etc) (Library/Application Support) NSDownloadsDirectory NS_ENUM_AVAILABLE(10_5, 2_0) =15, // 本地下载downloads目录 NSInputMethodsDirectory NS_ENUM_AVAILABLE(10_6, 4_0) =16, // 输入方法目录 (Library/Input Methods) NSMoviesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) =17, // 电影目录 (~/Movies) NSMusicDirectory NS_ENUM_AVAILABLE(10_6, 4_0) =18, // 音乐目录 (~/Music) NSPicturesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) =19, // 图片目录 (~/Pictures) NSPrinterDescriptionDire ctory NS_ENUM_AVAILABLE(10_6, 4_0) =20, // PPDs目录 (Library/Printers/PPDs) NSSharedPublicDirectory NS_ENUM_AVAILABLE(10_6, 4_0) =21, // 本地用户分享目录 (~/Public) NSPreferencePanesDirecto ry NS_ENUM_AVAILABLE(10_6, 4_0) =22, // PreferencePanes目录的位置使用系统的偏好设置 (Library/PreferencePanes) NSApplicationScriptsDire ctory NS_ENUM_AVAILABLE(10_8, NA) =23, // 本地用户 scripts 文件夹,对于所需的应用(~/Library/ApplicationScripts/code-signing-id) NSItemReplacementDirecto ry NS_ENUM_AVAILABLE(10_6, 4_0) =99, // For usewith NSFileManager'sURLForDirectory:inDomain:appropriateForURL:create:error: NSAllApplicationsDirecto ry =100, // 应用能够发生的所有路径 NSAllLibrariesDirectory =101, //资源可以发生的所有目录 NSTrashDirectory NS_ENUM_AVAILABLE(10_8, NA) =102 // 垃圾存放目录 };