一逮矛、沙盒中幾個(gè)主要的目錄
每個(gè)沙盒下面都有相似的目錄結(jié)構(gòu)力穗,如下圖所示(出自蘋(píng)果官方文檔):
每個(gè)應(yīng)用的沙盒目錄都是相似的愧口,主要包含圖中所示的四個(gè)目錄:
1.MyApp.app
1.1 存放內(nèi)容
該目錄包含了應(yīng)用程序本身的數(shù)據(jù),包括資源文件和可執(zhí)行文件等欢际。程序啟動(dòng)以后母市,會(huì)根據(jù)需要從該目錄中動(dòng)態(tài)加載代碼或資源到內(nèi)存,這里用到了lazy loading的思想损趋。
1.2 整個(gè)目錄是只讀的
為了防止被篡改患久,應(yīng)用在安裝的時(shí)候會(huì)將該目錄簽名,非越獄的情況下浑槽,該目錄中的內(nèi)容無(wú)法更改蒋失。
1.3 不會(huì)被iTunes同步
1.4 路徑獲取
NSString *homePath = NSHomeDirectory();
2.Documents
2.1存放內(nèi)容
2.3 路徑獲取
NSArray *docArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [docArr objectAtIndex:0];
3.Documents/Inbox
3.1 存放內(nèi)容
4.Library
4.3 路徑獲取
NSArray *libraryArr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryPath = [libraryArr objectAtIndex:0];
5.Library/Caches
5.1 存放內(nèi)容
主要是緩存文件,用戶(hù)使用過(guò)程中緩存都可以保存在這個(gè)目錄中桐玻,保存可再生的文件篙挽,比如網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù)。鑒于此畸冲,yingyong程序通常還需要負(fù)責(zé)刪除這些文件嫉髓。
不會(huì)被iTunes同步
路徑獲取
NSString *cache = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
6.Library/Preferences
6.1 存放內(nèi)容
應(yīng)用程序的偏好設(shè)置文件。我們使用NSUserDefaults寫(xiě)的設(shè)置數(shù)據(jù)都會(huì)保存在這個(gè)目錄下的一個(gè)plist文件中邑闲,這就是寫(xiě)到plist中算行!
會(huì)被iTunes同步。
7.tmp
7.1 存放內(nèi)容
各種臨時(shí)文件苫耸,保存應(yīng)用再次啟動(dòng)時(shí)不需要的文件州邢。而且,當(dāng)應(yīng)用不再需要這些文件時(shí)應(yīng)該主動(dòng)將其刪除,因?yàn)樵撃夸浵碌臇|西隨時(shí)可能被系統(tǒng)清理掉量淌,目前已知的一種可能清理的原因是系統(tǒng)磁盤(pán)存儲(chǔ)空間不足的時(shí)候骗村。
不會(huì)被iTunes同步。
路徑獲取
NSString *tempPath = NSTemporaryDirectory();