Documents
需要保存由"應用程序本身"產生的文件或者數據,例如:游戲進度、涂鴉軟件的繪圖。目錄中的文件會被自動保存在 iCloud。
Caches
1.保存臨時文件,"后續需要使用",例如:緩存圖片,離線數據(地圖數據)。
2.系統不會清理 cache 目錄中的文件。
3.就要求程序開發時,"必須提供 cache 目錄的清理解決方案"
tmp
1.保存臨時文件,"后續不需要使用"。
2.tmp 目錄中的文件,系統會自動清理
3.重新啟動手機,tmp 目錄會被清空
4.系統磁盤空間不足時,系統也會自動清理
Preferences
用戶偏好,使用 NSUserDefault 直接讀寫!如果要想數據及時寫入磁盤,還需要調用一個同步方法
Caches和tmp的區別:caches呢就是緩存的,例如下載一些文件啊,有些pdf或者其他圖片挺大的,可以放在這里,應用下次打開的時候還會在的。而tmp下次打開很有可能被自動刪除了,這是臨時文件夾
Caches和documents區別就在于:cheches文件夾不會在你備份手機數據的時候上傳到iTunes上去,documents則會被備份上傳,所以documents放占用空間小的重要數據,備份數據就很輕松caches放的是比較大的文件,所以就不備份,太大了不容易上傳。
//獲取沙盒根目錄
NSString*directory =NSHomeDirectory();
//獲取Documents路徑
NSArray*paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*path = [paths objectAtIndex:0];
//獲取Caches路徑
NSArray*paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString*path = [paths objectAtIndex:0];
//獲取tmp路徑
NSString*tmp =NSTemporaryDirectory();
歡迎各位過路神仙指出錯誤。