iOS 沙盒目錄結構介紹

2021-07-22 16:10:15 字數 1565 閱讀 8524

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時的示例路徑:

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

~/library/caches/letuallclassifystring.plist

iOS 沙盒目錄結構

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

iOS沙盒檔案目錄介紹

首先奉上蘋果官方文件 沙盒檔案結構如下 官方沙盒結構圖 data container初始化目錄結構 documents 儲存使用者建立的文件檔案的目錄,使用者可以通過檔案分享分享該目錄下的檔案。在itunes和icloud備份時會備份該目錄。建議儲存你希望使用者看得見的檔案。不能用於存放快取檔案,否...

iOS沙盒目錄結構解析

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