每個iOS應(yīng)用都有自己的應(yīng)用沙盒(應(yīng)用沙盒就是文件系統(tǒng)目錄)迅腔,與其他文件系統(tǒng)隔離沧烈。應(yīng)用必須待在自己的沙盒里像云,其他應(yīng)用不能訪問該沙盒。沙盒下的目錄如下:
- Application:存放程序源文件迅诬,上架前經(jīng)過數(shù)字簽名,上架后不可修改惩歉。
- Documents: 保存應(yīng)?運行時生成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時會備份該目錄俏蛮。例如,游戲應(yīng)用可將游戲存檔保存在該目錄
- tmp: 保存應(yīng)?運行時所需的臨時數(shù)據(jù),使?完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用 沒有運行時,系統(tǒng)也可能會清除該目錄下的文件争涌。iTunes同步設(shè)備時不會備份該目錄辣恋。
- Library/Caches: 保存應(yīng)用運行時?成的需要持久化的數(shù)據(jù),iTunes同步設(shè)備時不會備份 該目錄模软。?一般存儲體積大包警、不需要備份的非重要數(shù)據(jù)害晦,比如網(wǎng)絡(luò)數(shù)據(jù)緩存存儲到Caches下
- Library/Preference: 保存應(yīng)用的所有偏好設(shè)置,如iOS的Settings(設(shè)置) 應(yīng)?會在該目錄中查找應(yīng)?的設(shè)置信息壹瘟。iTunes同步設(shè)備時會備份該目錄
iOS沙盒目錄
1稻轨、獲取程序的Home目錄
NSString *path = NSHomeDirectory(); NSLog(@"path:%@",path);
打印結(jié)果:path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A
真機上的目錄是:/var/mobile/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2 可見,真機上的目錄是/var/mobile/Applications/這個目錄下的政冻,和模擬器不一樣线欲。這個是Home目錄,其他的子目錄和模擬器一樣李丰。
2、獲取Document目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
打印結(jié)果: path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Documents
3舟舒、獲取Cache目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
打印結(jié)果:path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Library/Caches
4秃励、 獲取Library目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSLog(@"path:%@", path);
打印結(jié)果:path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Library
5痹筛、獲取Tmp目錄
NSString *path = NSTemporaryDirectory();
NSLog(@"%@", path);
打印結(jié)果:path:/var/folders/hj/8sgyk0f555l1z_n95p2b2kp00000gn/T/
轉(zhuǎn)自:[ iOS開發(fā)總結(jié)之沙盒存儲]