IOS程式 沙盒目錄 結構分析 目錄獲取

2022-08-30 01:09:09 字數 1453 閱讀 3649

每個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系統的封閉性展現的淋漓盡致。一 沙盒中幾個主要的目錄 每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 二 獲取主要目錄路徑的方...