User Tools

Site Tools


Sidebar

Go Back

Refresh

You are not allowed to add pages

Direct Link

library:ios:appfolder

IOS App Sandbox Folder

在iPhone的沙箱模型有四个文件夹,分别是:

  • documents
  • tmp
  • app
  • library

创建文件的时候会先创建文件的路径

1. 文档目录 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:不会展开全路径,会把应用沙盒的路径用波浪号(~)代替

2. 库目录 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];

3. 临时文件夹 tmp

iTunes不会同步此文件夹,里面存的是临时文件,随时可以被删除,一般不怎么用 NSString *tmppath = NSTemporaryDirectory();

4. 沙盒主目录路径

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                                    // 垃圾存放目录 

};

library/ios/appfolder.txt · Last modified: 2022/12/30 18:33 by lhaosen