標籤:
IOS中的沙箱機制(SandBox)是一種安全體系,它規定了應用程式只能在為該應用建立的檔案夾內讀取檔案,不可以訪問其他地方的內容。所有的非代碼檔案都儲存在這個地方,比片、聲音、屬性列表和文字檔等。應用沙箱一般包括以下幾個檔案目錄:1 應用程式套件組合:包含所有資源檔和可執行檔 2 Documents:儲存應用運行時產生的需要持久化的資料,iTunes會自動備份該目錄 3 tmp:儲存應用運行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄刪除,應用沒有運行時,系統也可能會自動清理該目錄下的檔案,iTunes不會同步該目錄,iPhone重啟時該目錄下的檔案會丟失。4 Libaray:儲存程式的預設設定和其他狀態資訊,iTunes會自動備份該目錄。 5 Libaray/Caches:存放快取檔案,iTunes不會備份此目錄,此目錄下檔案不會在應用退出刪除,一般存放體積比較大,不是很重要的資源 6 Libaray/Preferences:儲存應用的所有喜好設定,ios的Settings(設定)應用會在該目錄中尋找應用的設定資訊,iTunes會自動備份該目錄。
1、擷取程式的Home目錄NSString *homeDirectory = NSHomeDirectory(); NSLog(@"path:%@", homeDirectory); 2、擷取document目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"path:%@", path); 3、擷取Cache目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path); 4、擷取Library目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path); 5、擷取Tmp目錄NSString *tmpDir = NSTemporaryDirectory(); NSLog(@"%@", tmpDir); 6、寫入檔案NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; if (!docDir) { NSLog(@"Documents 目錄未找到"); } NSArray *array = [[NSArray alloc] initWithObjects:@"內容",@"content",nil]; NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"]; [array writeToFile:filePath atomically:YES];7, 寫入檔案NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDir = [paths objectAtIndex:0]; NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath]; NSLog(@"%@", array);
IOS 沙箱機制