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表示不展開。
獲取沙盒目錄路徑的**:
// 獲取沙盒主目錄路徑第三個引數為yes時的示例路徑: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
();
/var/第三個引數為no時的示例路徑:mobile//
dbac1849
-cf0a
-435a
-98fb
-a7472c73ec42
/library
/caches
/letuallclassifystring
.plist
~/library/
caches
/letuallclassifystring
.plist
iOS沙盒目錄結構解析
出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 每個應用的沙盒目錄都是相似的,主要包含圖中所示的4...
iOS沙盒目錄結構解析
出於安全考慮,ios系統的沙盒機制規定每個應用都只能訪問當前沙盒目錄下面的檔案 也有例外,比如系統通訊錄能在使用者授權的情況下被第三方應用訪問 這個規則把ios系統的封閉性展現的淋漓盡致。一 沙盒中幾個主要的目錄 每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 二 獲取主要目錄路徑的方...
iOS 沙盒目錄結構介紹
ios系統中,每個應用都有自己的沙盒,且應用只能訪問其對應的沙盒目錄下面的檔案。當然,在使用者授權的情況下,應用也可以訪問其他目錄下面的檔案。比如,使用者授權情況下,應用可以訪問相簿 通訊錄。在開發中,經常會涉及到 ios 沙盒目錄,比如讀寫檔案,歸檔解檔等。一 沙盒的目錄結構 可知,沙盒目錄下有三...