iOS 沙盒目錄結構

2021-07-11 16:52:07 字數 1953 閱讀 4865

ios系統中,每個應用都有自己的沙盒,且應用只能訪問其對應的沙盒目錄下面的檔案。當然,在使用者授權的情況下,應用也可以訪問其他目錄下面的檔案。比如,使用者授權情況下,應用可以訪問相簿、通訊錄。在開發中,經常會涉及到 ios 沙盒目錄,比如讀寫檔案,歸檔解檔等。

一:沙盒的目錄結構

可知,沙盒目錄下有三個資料夾:documents、library、temp。其中,library下面有兩個資料夾,分別是 preferences 和 caches。

二:每個目錄下存放的檔案

1: documents 目錄:用來儲存使用者資料,應該將所有的應用程式資料檔案寫入到該目錄下。

2:library 目錄:(1)preferences 目錄:包含應用程式的偏好設定檔案  (2)caches 目錄:用於存放應用程式專用的支援檔案,儲存應用程式再次啟動過程中需要的資訊。

3:temp目錄:用於存放臨時檔案,儲存應用程式再次啟動過程中不需要的資訊。

三:獲取沙盒目錄的方法

獲取沙盒目錄路徑可以通過 nssearchpathfordirectoriesindomains 方法,該方法有三個引數:

1:directory nssearchpathdirectory型別的enum值,表情要搜尋的目錄名稱。

2:domainmask nssearchpathdomainmask型別的enum值,指定搜尋範圍。通常情況下是nsuserdomainmask,表示搜尋的範圍限制於當前應用的沙盒目錄。

3:expandtilde bool值,表示返回的路徑中是否展開~。如果是yes,表示展開,no表示不展開。

獲取沙盒目錄路徑的**:

// 獲取沙盒主目錄路徑

nsstring

*homedir

=nshomedirectory

();// 獲取documents目錄路徑

nsstring

*docdir =[

nssearchpathfordirectoriesindomains

(nsdocumentdirectory

,nsuserdomainmask

,yes

)firstobject

];// 獲取library的目錄路徑

nsstring

*libdir =[

nssearchpathfordirectoriesindomains

(nslibrarydirectory

,nsuserdomainmask

,yes

)lastobject

];// 獲取caches目錄路徑

nsstring

*cachesdir =[

nssearchpathfordirectoriesindomains

(nscachesdirectory

,nsuserdomainmask

,yes

)firstobject

];// 獲取tmp目錄路徑

nsstring

*tmpdir

=nstemporarydirectory

();

第三個引數為yes時的示例路徑:

/var/

mobile//

dbac1849

-cf0a

-435a

-98fb

-a7472c73ec42

/library

/caches

/letuallclassifystring

.plist

第三個引數為no時的示例路徑:

~

/library/

caches

/letuallclassifystring

.plist

iOS沙盒目錄結構解析

出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 每個應用的沙盒目錄都是相似的,主要包含圖中所示的4...

iOS沙盒目錄結構解析

出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。一 沙盒中幾個主要的目錄 每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 二 獲取主要目錄路徑的方...

iOS 沙盒目錄結構介紹

ios系統中,每個應用都有自己的沙盒,且應用只能訪問其對應的沙盒目錄下面的檔案。當然,在使用者授權的情況下,應用也可以訪問其他目錄下面的檔案。比如,使用者授權情況下,應用可以訪問相簿 通訊錄。在開發中,經常會涉及到 ios 沙盒目錄,比如讀寫檔案,歸檔解檔等。一 沙盒的目錄結構 可知,沙盒目錄下有三...