一、iOS中的沙盒機制 · iOS應用程式只能對自己創建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一般存放著程式包文件(可執行文件)、圖片、音頻、視頻、plist文件、sqlite資料庫以及其他文件。 · 每個應用程式都有自己的獨立的存儲空間(沙盒) · 一般來說應用程式之間是不可 ...
一、iOS中的沙盒機制
· iOS應用程式只能對自己創建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一般存放著程式包文件(可執行文件)、圖片、音頻、視頻、plist文件、sqlite資料庫以及其他文件。
· 每個應用程式都有自己的獨立的存儲空間(沙盒)
· 一般來說應用程式之間是不可以互相訪問
模擬器沙盒的位置
/User/userName/Library/Application Support/iPhone Simulator
當我們創建應用程式時,在每個沙盒中含有三個文件,分別是Document、Library和temp。
• Document:一般需要持久的數據都放在此目錄中,可以在當中添加子文件夾,iTunes備份和恢復的時候,會包括此目錄。
• Library:設置程式的預設設置和其他狀態信息
• temp:創建臨時文件的目錄,當iOS設備重啟時,文件會被自動清除
二,iphone沙盒的4個文件
1、Documents 目錄:您應該將所有de應用程式數據文件寫入到這個目錄下。這個目錄用於存儲用戶數據或其它應該定期備份的信息。
2、AppName.app 目錄:這是應用程式的程式包目錄,包含應用程式的本身。由於應用程式必須經過簽名,所以您在運行時不能對這個目錄中的內容進行修改,否則可能會使應用程式無法啟動。
3、Library 目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
Preferences 目錄:包含應用程式的偏好設置文件。您不應該直接創建偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程式的偏好.
Caches 目錄:用於存放應用程式專用的支持文件,保存應用程式再次啟動過程中需要的信息。
4、tmp 目錄:這個目錄用於存放臨時文件,保存應用程式再次啟動過程中不需要的信息。
一,代碼:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title=@"RootViewController";
//獲取根目錄
NSString*homePath = NSHomeDirectory();
NSLog(@"Home目錄:%@",homePath);
//獲取Documents文件夾目錄,第一個參數是說明獲取Doucments文件夾目錄,第二個參數說明是在當前應用沙盒中獲取,所有應用沙盒目錄組成一個數組結構的數據存放
NSArray*docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString*documentsPath = [docPath objectAtIndex:0];
NSLog(@"Documents目錄:%@",documentsPath);
//獲取Cache目錄
NSArray*cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString*cachePath = [cacPath objectAtIndex:0];
NSLog(@"Cache目錄:%@",cachePath);
//Library目錄
NSArray*libsPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString*libPath = [libsPath objectAtIndex:0];
NSLog(@"Library目錄:%@",libPath);
//temp目錄
NSString*tempPath = NSTemporaryDirectory();
NSLog(@"temp目錄:%@",tempPath);
}
二,輸出:
2015-10-22 14:16:10.348 iOS的目錄[11616:228589] Home目錄:/Users/chenlihua/Library/Developer/CoreSimulator/Devices/A5073606-49E9-4561-9BEC-9EF95581E3CF/data/Containers/Data/Application/E283BABA-CB66-413E-849C-C0C2DC9AE9F7
2015-10-22 14:16:10.349 iOS的目錄[11616:228589] Documents目錄:/Users/chenlihua/Library/Developer/CoreSimulator/Devices/A5073606-49E9-4561-9BEC-9EF95581E3CF/data/Containers/Data/Application/E283BABA-CB66-413E-849C-C0C2DC9AE9F7/Documents
2015-10-22 14:16:10.349 iOS的目錄[11616:228589] Cache目錄:/Users/chenlihua/Library/Developer/CoreSimulator/Devices/A5073606-49E9-4561-9BEC-9EF95581E3CF/data/Containers/Data/Application/E283BABA-CB66-413E-849C-C0C2DC9AE9F7/Library/Caches
2015-10-22 14:16:10.349 iOS的目錄[11616:228589] Library目錄:/Users/chenlihua/Library/Developer/CoreSimulator/Devices/A5073606-49E9-4561-9BEC-9EF95581E3CF/data/Containers/Data/Application/E283BABA-CB66-413E-849C-C0C2DC9AE9F7/Library
2015-10-22 14:16:10.349 iOS的目錄[11616:228589] temp目錄:/Users/chenlihua/Lib