
應(yīng)用程序包:(上圖中的Layer)包含了所有的資源文件和可執(zhí)行文件
Documents:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)會備份該目錄。例如,游戲應(yīng)用可將游戲存檔保存在該目錄
tmp:保存應(yīng)用運(yùn)行時(shí)所需的臨時(shí)數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用沒有運(yùn)行時(shí),系統(tǒng)也可能會清除該目錄下的文件。iTunes同步設(shè)備時(shí)不會備份該目錄
Library/Caches:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時(shí)不會備份該目錄。一般存儲體積大、不需要備份的非重要數(shù)據(jù)
Library/Preference:保存應(yīng)用的所有偏好設(shè)置,iOS的Settings(設(shè)置)應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息。iTunes同步設(shè)備時(shí)會備份該目錄
應(yīng)用沙盒目錄的常見獲取方式沙盒根目錄:NSString *home = NSHomeDirectory();
Documents:(2種方式)
利用沙盒根目錄拼接”Documents”字符串
NSString *home = NSHomeDirectory();
NSString *documents = [home stringByAppendingPathComponent:@"Documents"];
// 不建議采用,因?yàn)樾掳姹镜牟僮飨到y(tǒng)可能會修改目錄名利用NSSearchPathForDirectoriesInDomains函數(shù)
// NSUserDomainMask 代表從用戶文件夾下找
// YES 代表展開路徑中的波浪字符“~”
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
// 在iOS中,只有一個(gè)目錄跟傳入的參數(shù)匹配,所以這個(gè)集合里面只有一個(gè)元素
NSString *documents = [array objectAtIndex:0];tmp:NSString *tmp = NSTemporaryDirectory();
Library/Caches:(跟Documents類似的2種方法)
利用沙盒根目錄拼接”Caches”字符串
利用NSSearchPathForDirectoriesInDomains函數(shù)(將函數(shù)的第2個(gè)參數(shù)改為:NSCachesDirectory即可)Library/Preference:通過NSUserDefaults類存取該目錄下的設(shè)置信息
- 屬性列表
- 屬性列表是一種XML格式的文件,拓展名為plist
- 如果對象是NSString、NSDictionary、NSArray、NSData、NSNumber等類型,就可以使用writeToFile:atomically:方法直接將對象寫到屬性列表文件中