前言
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。
1. Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
2. Library:存储程序的默认设置或其它状态信息,里面还有一个二级目录 Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
3. tmp:提供一个即时创建临时文件的地方,此目录下文件可能会在应用退出后删除
4. iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
路径查找格式
比如我要查找,数据所在缓存的绝对路径,也就是Library下的Caches目录
/*
* 方法NSSearchPathForDirectoriesInDomains用于返回指定范围内的指定名称的目录的路径集合。有三个参数:
* 第一个参数:directoryNSSearchPathDirectory类型的enum值,表明我们要搜索的目录名称,
* 第二个参数:domainMaskNSSearchPathDomainMask类型的enum值,指定搜索范围
* 第三个参数:expandTildeBOOL值,表示是否展开波浪线~。我们知道在iOS中~的全写形式是/User/userName,该值为YES即表示写成全写形式,为NO就表示直接写成“~”。
*/
NSString *libraryCachesPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
第一个参数可能的枚举值,也就是想要查找的目录:
typedef NS_ENUM(NSUInteger, NSSearchPathDirectory) {
// 到applications (Applications)目录下
NSApplicationDirectory = 1,
// 到Applications/Demos目录下
NSDemoApplicationDirectory,
// 到Developer/Applications目录下.
NSDeveloperApplicationDirectory,
// 到Applications/Utilities目录下
NSAdminApplicationDirectory,
// 到Library目录下
NSLibraryDirectory,
// 到Developer目录下.
NSDeveloperDirectory,
// 到用户的主目录下
NSUserDirectory,
// 到documentation (Documentation)的目录下
NSDocumentationDirectory,
// 到documents (Documents)目录下
NSDocumentDirectory,
// CoreServices目录的位置 (System/Library/CoreServices)
NSCoreServiceDirectory,
// 自动保存的文档位置 (Documents/Autosaved)
NSAutosavedInformationDirectory
// 本地用户的桌面
NSDesktopDirectory = 12,
// 本地缓冲区目录(Library/Caches)
NSCachesDirectory = 13,
// 本地应用支持文件目录 (plug-ins, etc) (Library/Application Support)
NSApplicationSupportDirectory = 14,
// 本地下载downloads目录
NSDownloadsDirectory
//输入方法目录 (Library/Input Methods)
NSInputMethodsDirectory
// 电影目录 (~/Movies)
NSMoviesDirectory
// 音乐目录 (~/Music)
NSMusicDirectory
// 图片目录 (~/Pictures)
NSPicturesDirectory
// 本地用户分享目录 (~/Public)
NSSharedPublicDirectory
};
第二个参数可能的枚举值,查找的区域:
typedef NS_OPTIONS(NSUInteger, NSSearchPathDomainMask) {
// 用户的主目录
NSUserDomainMask = 1,
// 当前机器的本地目录
NSLocalDomainMask = 2,
// 在网络中公开可用的位置
NSNetworkDomainMask = 4,
// 被苹果系统提供的,不可更改的位置 (/System)
NSSystemDomainMask = 8,
// 上述所有及未来的位置
NSAllDomainsMask = 0x0ffff
};
补充:
//获取应用程序的沙盒目录
NSString*homePtah =NSHomeDirectory()
未完,待续。。。。
网友评论