前言
默認情況下,每個沙盒含有3個文件夾:Documents, Library 和 tmp。
1.Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄
2.Library:存儲程序的默認設置或其它狀態信息,里面還有一個二級目錄Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除
3.tmp:提供一個即時創建臨時文件的地方,此目錄下文件可能會在應用退出后刪除
4.iTunes在與iPhone同步時,備份所有的Documents和Library文件。
5.iPhone在重啟時,會丟棄所有的tmp文件。
路徑查找格式
比如我要查找,數據所在緩存的絕對路徑,也就是Library下的Caches目錄
?? /*
*? 方法NSSearchPathForDirectoriesInDomains用于返回指定范圍內的指定名稱的目錄的路徑集合。有三個參數:
* 第一個參數:directoryNSSearchPathDirectory類型的enum值,表明我們要搜索的目錄名稱,
* 第二個參數:domainMaskNSSearchPathDomainMask類型的enum值,指定搜索范圍
* 第三個參數:expandTildeBOOL值,表示是否展開波浪線~。我們知道在iOS中~的全寫形式是/User/userName,該值為YES即表示寫成全寫形式,為NO就表示直接寫成“~”。
??? */NSString*libraryCachesPath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) lastObject];
第一個參數可能的枚舉值,也就是想要查找的目錄:
typedefNS_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};
第二個參數可能的枚舉值,查找的區域
typedefNS_OPTIONS(NSUInteger,NSSearchPathDomainMask) {
// 用戶的主目錄NSUserDomainMask=1,
// 當前機器的本地目錄NSLocalDomainMask=2,
// 在網絡中公開可用的位置NSNetworkDomainMask=4,
// 被蘋果系統提供的,不可更改的位置 (/System)NSSystemDomainMask=8,
// 上述所有及未來的位置NSAllDomainsMask=0x0ffff};