每個ios應用都有自己的應用沙盒(應用沙盒就是檔案系統目錄),與其他檔案系統隔離。應用必須待在自己的沙盒裡,其他應用不能訪問該沙盒
應用沙盒的檔案系統目錄,如下圖所示(假設應用的名稱叫network)
應用程式包:(上圖中的network)包含了所有的資源檔案和可執行檔案
documents:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄
tmp:儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。itunes同步裝置時不會備份該目錄
library/caches:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時不會備份該目錄。一般儲存體積大、不需要備份的非重要資料
library/preference:儲存應用的所有偏好設定,ios的settings(設定)應用會在該目錄中查詢應用的設定資訊。itunes同步裝置時會備份該目錄
應用沙盒目錄的常見獲取方式:
沙盒根目錄:nsstring *home =nshomedirectory();
documents:(2種方式)
利用沙盒根目錄拼接」documents」字串
nsstring *home =nshomedirectory();
// 不建議採用,因為新版本的作業系統可能會修改目錄名
利用nssearchpathfordirectoriesindomains函式
// nsuserdomainmask 代表從使用者資料夾下找
// yes 代表展開路徑中的波浪字元「~」
nsarray *array = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, no);
// 在ios中,只有乙個目錄跟傳入的引數匹配,所以這個集合裡面只有乙個元素
nsstring *documents = [array objectatindex:0];
tmp:nsstring *tmp =nstemporarydirectory();
library/caches:(跟documents類似的2種方法)
利用沙盒根目錄拼接」caches」字串
利用nssearchpathfordirectoriesindomains函式(將函式的第2個引數改為:nscachesdirectory即可)
library/preference:通過nsuserdefaults類訪問該目錄下的設定資訊
iOS 沙盒目錄結構
ios系統中,每個應用都有自己的沙盒,且應用只能訪問其對應的沙盒目錄下面的檔案。當然,在使用者授權的情況下,應用也可以訪問其他目錄下面的檔案。比如,使用者授權情況下,應用可以訪問相簿 通訊錄。在開發中,經常會涉及到 ios 沙盒目錄,比如讀寫檔案,歸檔解檔等。一 沙盒的目錄結構 可知,沙盒目錄下有三...
iOS沙盒目錄結構解析
出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 每個應用的沙盒目錄都是相似的,主要包含圖中所示的4...
iOS沙盒目錄結構解析
出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。一 沙盒中幾個主要的目錄 每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 二 獲取主要目錄路徑的方...