IOS資料儲存之檔案沙盒儲存

2021-09-08 04:08:22 字數 3424 閱讀 6403

前言:

接下來具體認識一下沙盒儲存:

每個ios應用都有自己的應用沙盒,應用沙盒就是檔案系統目錄,與其他應用的檔案系統隔離,ios系統不允許訪問其他應用的應用沙盒。在ios8中已經開放訪問。

應用沙盒一般包括以下幾個檔案目錄:應用程式包、documents、libaray(下面有caches和preferences目錄)、tmp。

應用程式包:包含所有的資源檔案和可執行檔案。

documents:儲存應用執行時生成的需要持久化的資料,itunes會自動備份該目錄。蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,itunes備份和恢復的時候會包括此目錄

tmp:儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除。應用沒有執行時,系統也有可能會清除該目錄下的檔案,itunes不會同步該目錄。iphone重啟時,該目錄下的檔案會丟失。

library:儲存程式的預設設定和其他狀態資訊,itunes會自動備份該目錄。

libaray/caches:存放快取檔案,itunes不會備份此目錄,此目錄下檔案不會在應用退出刪除。一般存放體積比較大,不是特別重要的資源。

libaray/preferences:儲存應用的所有偏好設定,ios的settings(設定)應用會在該目錄中查詢應用的設定資訊,itunes會自動備份該目錄。

具體獲取各個目錄**如下:

//

獲得應用程式沙盒的documents資料夾路徑

nsarray *arrdocumentpaths=nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);

nsstring *documentpath=[arrdocumentpaths objectatindex:0

]; nslog(

@"documents path: %@

",documentpath);

//獲得應用程式沙盒的caches資料夾路徑

nsarray *arrcachespaths=nssearchpathfordirectoriesindomains(nscachesdirectory,nsuserdomainmask,yes);

nsstring *cachespath=[arrcachespaths objectatindex:0

]; nslog(

@"caches path: %@

",cachespath);

//獲得應用程式沙盒的downloads資料夾路徑

nsarray *arrdownloadpaths=nssearchpathfordirectoriesindomains(nsdownloadsdirectory,nsuserdomainmask,yes);

nsstring *loadpathspath=[arrdownloadpaths objectatindex:0

]; nslog(

@"downloads path: %@

",loadpathspath);

//獲得應用程式沙盒的home資料夾路徑

nsstring *homepath=nshomedirectory();

//獲得應用程式沙盒的tmp資料夾路徑

nsstring *tmppath= nstemporarydirectory();

fileutils.h

#import

@inte***ce

fileutils : nsobject

//返回快取根目錄 "caches"

+(nsstring *)getcachesdirectory;

//返回根目錄路徑 "document"

+ (nsstring *)getdocumentpath;

//建立資料夾

+(bool)creatdir:(nsstring*)dirpath;

//刪除資料夾

+(bool)deletedir:(nsstring*)dirpath;

//移動資料夾

+(bool)movedir:(nsstring*)srcpath to:(nsstring*)despath;

//建立檔案

+ (bool)creatfile:(nsstring*)filepath withdata:(nsdata*)data;

//讀取檔案

+(nsdata*)readfile:(nsstring *)filepath;

//刪除檔案

+(bool)deletefile:(nsstring *)filepath;

//返回 檔案全路徑

+ (nsstring*)getfilepath:(nsstring*) filename;

//在對應檔案儲存資料

+ (bool)writedatatofile:(nsstring*)filename data:(nsdata*)data;

//從對應的檔案讀取資料

+ (nsdata*)readdatafromfile:(nsstring*)filename;

@end

fileutils.m

#import

"fileutils.h

"@implementation

fileutils

//返回快取根目錄 "caches"

+(nsstring *)getcachesdirectory

//返回根目錄路徑 "document"

+ (nsstring *)getdocumentpath

//建立檔案目錄

+(bool)creatdir:(nsstring*)dirpath

else

}//刪除檔案目錄

+(bool)deletedir:(nsstring*)dirpath

return

no;}

//移動資料夾

+(bool)movedir:(nsstring*)srcpath to:(nsstring*)despath;

else}//

建立檔案

+ (bool)creatfile:(nsstring*)filepath withdata:(nsdata*)data

//讀取檔案

+(nsdata*)readfile:(nsstring *)filepath

//刪除檔案

+(bool)deletefile:(nsstring *)filepath

+ (nsstring *)getfilepath:(nsstring *)filename

+ (bool)writedatatofile:(nsstring*)filename data:(nsdata*)data

+ (nsdata*)readdatafromfile:(nsstring*)filename

@end

ios 資料儲存 Bundle 沙盒

什麼是沙盒 與其他檔案系統隔離,應用必須待在自己的沙河裡面,不能互相訪問 bundle 和 沙盒是分開的 獲取bundle 路徑 nsstring path nsbundle mainbundle bundlepath nslog path path 獲取 documents 資料夾 1.獲取沙盒路...

沙盒檔案儲存

1.plist檔案的訪問 1.1 document的目錄搜尋 1.拼接字串 nsstring homepath nshomedirectory 獲得沙盒路徑 2.系統提供的搜尋 searchpath 搜尋路徑 fordirectories 哪個資料夾 indomains 在哪搜尋 nsstring ...

沙盒儲存機制

1.documents 儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會備份該目錄。例如,遊戲應用可將遊戲存檔儲存在該目錄 nsstring document nssearchpathfordirectoriesindomains nsdocumentdirectory nsuserd...