【iOS資料儲存】iOS檔案系統介紹

shujucn發表於2015-04-09


iOS應用都有自己的應用沙盒(應用沙盒就是檔案系統目錄),與其他檔案系統隔離。應用必須待在自己的沙盒裡,其他應用不能訪問該沙盒
應用程式包:包含了所有的資原始檔和可執行檔案

(更多精彩,盡在微信公眾號ioscoding,每日推送iOS最前沿技術)

Documents:儲存應用執行時生成的需要持久化的資料,iTunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄

tmp:儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。iTunes同步裝置時不會備份該目錄
Library/Caches:儲存應用執行時生成的需要持久化的資料,iTunes同步裝置時不會備份該目錄。一般儲存體積大、不需要備份的非重要資料
Library/Preference:儲存應用的所有偏好設定,iOS的Settings(設定)應用會在該目錄中查詢應用的設定資訊。iTunes同步裝置時會備份該目錄


可以設定顯示隱藏檔案,然後在Finder下直接開啟。設定檢視隱藏檔案的方法如下:開啟終端,輸入命名
顯示Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隱藏Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
輸完單擊Enter鍵,退出終端,重新啟動Finder就可以了
重啟Finder:滑鼠單擊視窗左上角的蘋果標誌-->強制退出-->Finder-->

// 1.獲得沙盒根路徑方法一
// 不建議採用,因為新版本的作業系統可能會修改目錄名
    NSString *home = NSHomeDirectory();
    // 2.document路徑
    NSString *docPath = [home stringByAppendingPathComponent:@"Documents"];
//獲得沙盒路徑方法二
//NSUserDomainMask 代表從使用者資料夾下找
//YES 代表展開路徑中的波浪字元“~”
// 在iOS中,只有一個目錄跟傳入的引數匹配,所以這個集合裡面只有一個元素
    NSArray *array =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array objectAtIndex:0];
    NSLog(@"%@",documents);

tmp:NSString *tmp = NSTemporaryDirectory();
Library/Caches(Documents類似的2種方法)
u利用沙盒根目錄拼接”Caches”字串
u利用NSSearchPathForDirectoriesInDomains函式(將函式的第2個引數改為:NSCachesDirectory即可)
uLibrary/Preference:通過NSUserDefaults類存取該目錄下的設定資訊

相關文章