iOS UI 沙盒路徑的獲取及檔案的簡單儲存

2021-07-09 06:56:55 字數 2040 閱讀 3002

前幾天有人問起ios沙盒路徑如何獲取,時間太久沒記起來,幾天有空,回顧一下:

沙盒:

其實對於每乙個

應用程式都有唯一的乙個本地檔案與之對應

名字由系統隨機生成

這個檔案就是沙盒

沙盒機制

:沙河機制

其實就是

對每乙個應用程式

的資源起到乙個保護作用

當前程式不允許

訪問其他程式的資源

其他程式

也不允許

訪問當前程式的的資源

對於每乙個應用程式的沙盒檔案都包含以下檔案

1.documents

用來儲存持久化資料檔案

.如果我們想對乙個檔案進行長久儲存

就放在該資料夾下

2.libary 

(a)caches :

快取檔案,音訊

等一般我們會在該檔案下

建立images audioes videoes

等檔案

(b)perfrences :

用於存放使用者的偏好設定

比如用於判斷程式是否是第一次啟動的

plist

檔案就放在該資料夾下的

3.temp :

音訊等在手動移動到

caches中

應用程式包

,應用程式資源都**於包

,而包也是我們上傳到

以及使用者從

對於包內的資源我們不能進行修改

更不能刪除 另外

,對於以上檔案

都是由系統建立

不允許隨意更改

我們只能刪改自己建立的檔案;

**如下

nsstring *filepath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)firstobject];

進而了解一下檔案的簡單儲存:

寫入一段字串:helloworld!

nsstring *str1 = @"helloworld";

nsstring *documentspath = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) firstobject];

[str1 writetofile:filepath atomically:yes encoding:nsutf8stringencoding error:nil];

儲存陣列做plist檔案

nsstring *str2 = str1;

//建立乙個陣列

nsarray *arr = @[str1,str2];

//拼接檔案路徑

//寫入

[arr writetofile:filepath atomically:yes];

儲存字典為xml

nsdictionary *dic = @;

//檔案拼接

[dic writetofile:filepath atomically:yes];

儲存data

nsdata *data = [str1 datausingencoding:nsutf8stringencoding];

[data writetofile:filepath atomically:yes];

本地檔案讀取(txt檔案為例)

nsstring *filepath = [[nsbundle mainbundle] pathforresource:@"f1" oftype:@".txt"];

nsstring *str = [[nsstring alloc] initwithcontentsoffile:filepath encoding:nsutf8stringencoding error:nil];

iOS 獲取沙盒檔案路徑及 寫入 刪除 沙盒檔案

一 沙盒中幾個主要的目錄 每個沙盒下面都有相似的目錄結構,如下圖所示 出自蘋果官方文件 每個應用的沙盒目錄都是相似的,主要包含圖中所示的4個目錄 存放內容 該目錄包含了應用程式本身的資料,包括資源檔案和可執行檔案等。程式啟動以後,會根據需要從該目錄中動態載入 或資源到記憶體,這裡用到了lazy lo...

獲取沙盒路徑

1.獲取沙盒資料容器根目錄 nsstring homepath nshomedirectory nslog home根目錄 homepath 2.獲取documents路徑 引數一 指定要搜尋的資料夾列舉值 引數二 指定搜尋的域domian nsuserdomainmask 引數三 是否需要絕對 全...

Plist檔案儲存及沙盒路徑詳解

property list屬性列表檔案 它是一種用來儲存序列化後的物件的檔案。屬性列表檔案的擴充套件名為.plist 因此通常被稱為 plist檔案。檔案是xml格式的。plist檔案通常用於儲存使用者設定,也可以用於儲存 的資訊。1 工程裡的檔案路徑 nsbundle bundle nsbundl...