一、每個iOS應用SDK都被限制在沙盒中,沙盒相當于一個加了僅主人可見權限的文件夾,蘋果對沙盒有以下幾條限制。
(1)、應用程序可以在自己的沙盒里運作,但是不能訪問任何其他應用程序的沙盒。
(2)、應用程序間不能共享數據,沙盒里的文件不能被復制到其他應用程序文件夾中,也不能把其他應用程序文件夾中的文件復制到沙盒里。
(3)、蘋果禁止任何讀、寫沙盒以外的文件,禁止應用程序將內容寫到沙盒以外的文件夾中。
(4)、沙盒根目錄里有三個文件夾:
Documents:一般應該把應用程序的數據文件存到這個文件夾里,用于存儲用戶數據或其他應該定期備份的信息。
Library:下有兩個文件夾,Caches存儲應用程序再次啟動所需的信息(緩存文件等),PReferences包含應用程序偏好設置文件,不過不要在這里修改偏好設置。
Temp:存放臨時文件,即應用再次啟動不需要的文件。
二、獲取沙盒路徑
(1)、獲取沙盒根目錄有以下幾種方法:
a、用NSHomeDirectory獲取
1 NSString *path = NSHomeDirectory();2 NSLog(@"path = %@",path);
b、用用戶名獲取
1 NSString *userName = NSUserName();// 獲取創建該應用程序的用戶名2 NSString *rootPath = NSHomeDirectoryForUser(userName);3 NSLog(@"rootPath = %@",rootPath);
c、獲取Documents路徑
1 NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];2 NSString *filePath = [documentPath stringByAppendingString:@"data.plist"];//向Documents里添加文件3 NSLog(@"filePath = %@",filePath);
d、獲取temp路徑
1 NSString *tempPath = NSTemporaryDirectory();// 獲取temp目錄,如果在里面寫數據,當程序退出會清空2 NSLog(@"tempPath = %@",tempPath);
e、獲取caches路徑
1 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);2 NSString *cachesPath = [paths objectAtIndex:0];3 NSLog(@"cachesPath = %@",cachesPath);
新聞熱點
疑難解答