一捌归、沙盒目錄
iPhone的沙箱模型有四個(gè)文件夾亿絮,分別是documents告喊,tmp,library壹无,app葱绒。
獲取沙盒主目錄
NSString*homePaht = NSHomeDirectory();
documents
這是文檔目錄,有關(guān)App的數(shù)據(jù)文件緩存在這里斗锭。
向documents中寫(xiě)入緩存時(shí)候,首先需要獲取到文件目錄失球,documents文件路徑:
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
這里documentsPath返回是個(gè)數(shù)組岖是,但是取firstObject和lastObject應(yīng)該是一樣的,因?yàn)檫@個(gè)路徑下只有一個(gè)文件夾实苞。
app
AppName.app文件夾是應(yīng)用程序的程序包目錄豺撑,這個(gè)目錄下的文件一般不修改。
我們?cè)陂_(kāi)發(fā)階段經(jīng)常要用項(xiàng)目中某個(gè)資源文件等黔牵,就要獲取AppName.app目錄路徑聪轿,然后拿到程序包對(duì)應(yīng)的資源。
NSString *appPath = [[NSBundle mainBundle] bundlePath];
library
庫(kù)目錄猾浦,該目錄下有有兩級(jí)子目錄陆错,caches和preferences。
caches目錄
緩存目錄金赦,用于存儲(chǔ)應(yīng)用程序?qū)S玫闹С治募舸桑4鎽?yīng)用程序再次啟動(dòng)過(guò)程中需要的信息。iTunes不會(huì)同步此文件夾夹抗,適合存儲(chǔ)體積大绳慎,不需要備份的非重要數(shù)據(jù)。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
preferences目錄
包含應(yīng)用程序的編號(hào)設(shè)置文件,存放NSUserDefaults保存的.plist文件杏愤。iTunes同步該應(yīng)用時(shí)會(huì)同步該文件夾中的內(nèi)容靡砌。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//直接調(diào)用方法就能保存入偏好設(shè)置里面
[userDefaults setObject:@"hello"forKey:@"hello"];
[userDefaults synchronize];
tmp
這個(gè)目錄用于存放臨時(shí)文件,只程序終止時(shí)需要移除這些文件珊楼,當(dāng)應(yīng)用程序不再需要這些臨時(shí)文件時(shí)乏奥,應(yīng)該將其從這個(gè)目錄中刪除。
NSString *tmppath = NSTemporaryDirectory();
二亥曹、主要目錄
Documents(NSDocumentDirectory)
用于寫(xiě)入應(yīng)用相關(guān)數(shù)據(jù)文件的目錄邓了,在iOS中寫(xiě)入這里的文件能夠與iTunes共享并訪(fǎng)問(wèn),存儲(chǔ)在這里的文件會(huì)自動(dòng)備份到云端媳瞪。
Library/Caches(NSCachesDirectory)
用于寫(xiě)入應(yīng)用支持文件的目錄骗炉,保存應(yīng)用程序再次啟動(dòng)需要的信息。iTunes不會(huì)對(duì)這個(gè)目錄的內(nèi)容進(jìn)行備份蛇受。
tmp(use NSTemporaryDirectory())
這個(gè)目錄用于存放臨時(shí)文件句葵,只程序終止時(shí)需要移除這些文件,當(dāng)應(yīng)用程序不再需要這些臨時(shí)文件時(shí)兢仰,應(yīng)該將其從這個(gè)目錄中刪除乍丈。
Library/Preferences
這個(gè)目錄包含應(yīng)用程序的偏好設(shè)置文件,使用 NSUserDefault類(lèi)進(jìn)行偏好設(shè)置文件的創(chuàng)建把将、讀取和修改轻专。