默認(rèn)情況下登淘,每個(gè)沙盒含有3個(gè)文件夾:Documents, Library 和 tmp媳谁。因?yàn)閼?yīng)用的沙盒機(jī)制筋栋,應(yīng)用只能在幾個(gè)目錄下讀寫文件
Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下吩跋,iTunes備份和恢復(fù)的時(shí)候會包括此目錄蜗搔。保存需要持久化的數(shù)據(jù),例如游戲應(yīng)用可以將游戲存檔保存在該目錄;
Library:存儲程序的默認(rèn)設(shè)置或其它狀態(tài)信息;
Library/Preferences文件夾:偏好設(shè)置畦贸,通過NSUserDefaults類存取該目錄下的設(shè)置信息陨闹;可以存儲用戶是否登陸,是否記住密碼薄坏,不需要關(guān)心文件名趋厉;
Library/Caches:存放緩存文件,iTunes不會備份此目錄胶坠,此目錄下文件不會在應(yīng)用退出刪除君账,保存需要持久化的數(shù)據(jù),體積大沈善,非重要的數(shù)據(jù)乡数。
tmp:存放臨時(shí)文件的地方。
iTunes在與iPhone同步時(shí)闻牡,備份所有的Documents和Library文件净赴。
iPhone在重啟時(shí),會丟棄所有的tmp文件澈侠。
// 獲取程序的Home目錄
NSString *homeDirectory = NSHomeDirectory();
// 獲取document目錄
NSString *document = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 獲取Library目錄
NSString *library = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
// 獲取Cache目錄
NSString *cache = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
// 獲取tmp目錄
NSString *temp = NSTemporaryDirectory();