一、每個ios應用sdk都被限制在「沙盒」中,「沙盒」相當於乙個加了僅主人可見許可權的資料夾,蘋果對沙盒有以下幾條限制。
(1)、應用程式可以在自己的沙盒裡運作,但是不能訪問任何其他應用程式的沙盒。
(2)、應用程式間不能共享資料(通過網路共享),沙盒裡的檔案不能被複製到其他應用程式資料夾中,也不能把其他應用程式資料夾中的檔案複製到沙盒裡。
(3)、蘋果禁止任何讀、寫沙盒以外的檔案,禁止應用程式將內容寫到沙盒以外的資料夾中。
根目錄下共有4個目錄,分別:
doucuments:蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,itunes備份和恢復的時候會包括此目錄
library:library下有兩個資料夾,caches儲存應用程式再次啟動所需的資訊,preferences包含應用程式偏好設定檔案,不過不要在這裡修改偏好設定。
tmp:建立和存放臨時檔案的地方,此目錄下檔案在應用退出刪除
[[nsbundle mainbundle] bundlepath];可以訪問該目錄
三、xcode裡黃色的資料夾都是虛的,藍色都才是實的。
//獲取使用者的根目錄
nsstring *homepath=nshomedirectory();
nslog(
@"homepath=%@
",homepath);
//獲得document路徑(通過拼接可以得到根目錄下面的四個資料夾)
documents"];
nslog(
@"docpath=%@
",docpath);
//不通過拼接直接獲得
nsstring *docpath1=[nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes)objectatindex:0
]; nslog(
@"docpath1=%@
",docpath1);
//獲取library資料夾
nsstring *librarypath=[nssearchpathfordirectoriesindomains(nslibrarydirectory, nsuserdomainmask, yes)objectatindex:0
]; nslog(
@"librarypath=%@
",librarypath);
//獲得chches目錄(13是nscachesdirectory列舉值,在列舉中數值和名稱一樣的使用)
nsstring *cachespath=[nssearchpathfordirectoriesindomains(13, nsuserdomainmask, yes)objectatindex:0
]; nslog(
@"cachespath=%@
",cachespath);
//獲取臨時目錄
nsstring *tmppath=nstemporarydirectory();
nslog(
@"tmppath=%@
",tmppath);
//********************==在沙盒路徑裡面建立檔案*************************
//1、找到想要建立檔案路徑,
hello.txt"];
//2、建立乙個檔案管理者物件,來管理我們的檔案(檔案管理者是乙個單例物件)
nsfilemanager *fm=[nsfilemanager defaultmanager];
//3、判斷剛才建立的檔案路徑下面是否已經存乙個檔案可以管理,如果存在就不用建立了,如果不存在就建立乙個
if (![fm fileexistsatpath:hellopath])//
不存在
else
//存在
//檔案寫入內容
nsstring *str=@"
iphone";
[str writetofile:hellopath atomically:yes encoding:nsutf8stringencoding error:nil];
nsdata *data=[nsdata datawithcontentsoffile:hellopath];
nslog(
@"data=%@
",data);
nsstring *str1=[[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding];
nslog(
@"str1=%@
",str1);
//nserror *erroe=nil;
//檔案的刪除
/*if ([fm fileexistsatpath:hellopath])
*/hello.txt"];
//檔案的移動
if([fm fileexistsatpath:hellopath])
else
//檢視一路徑下有多少檔案(隱藏檔案也可檢視)
nsarray *array=[fm contentsofdirectoryatpath:docpath1 error:nil];
nslog(
@"array=%@
",array);
// nsstring *ipadpath=[[nsbundle mainbundle] pathforresource:@"
ipad
" oftype:@"
txt" indirectory:nil];
nslog(
@"ipadpath=%@
",ipadpath);
nsstring *ipadstr=[nsstring stringwithcontentsoffile:ipadpath encoding:nsutf8stringencoding error:nil];
nslog(
@"ipadstr=%@
",ipadstr);
iOS沙盒機制(sandBox)
一 沙盒概念 應用程式只能在為該程式建立的資料夾中進行檔案的讀取,這塊區域稱為沙盒。二 沙盒機制 是一種安全機制 1 應用程式只能在自己的沙盒中進行檔案讀取。2 應用程式不能訪問其它應用程式的沙盒。3 如果應用程式想要接收外部資料或者訪問其它應用程式,需要通過許可權認證。三 沙盒裡面的三個資料夾 1...
iOS之沙盒 Sandbox 機制
ios的安全性結構可以在某種程式中保護應用程式的資料和系統免受安全漏洞的損害,ios提供了一種機制使得每個應用程式都在自己的沙盒下。1 沙盒規定了應用程式只能在為該應用建立的資料夾下讀取檔案,不能訪問其他應用程式的沙盒內容。2 應用程式間不能共享資料,沙盒裡的檔案不能被複製到其他應用程式中,也不能把...
iOS沙盒(sandbox)機制及獲取沙盒路徑
一 每個ios應用sdk都被限制在 沙盒 中,沙盒 相當於乙個加了僅主人可見許可權的資料夾,蘋果對沙盒有以下幾條限制。1 應用程式可以在自己的沙盒裡運作,但是不能訪問任何其他應用程式的沙盒。2 應用程式間不能共享資料,沙盒裡的檔案不能被複製到其他應用程式資料夾中,也不能把其他應用程式資料夾中的檔案複...