iOS程序默認(rèn)情況下只能訪問(wèn)程序自己的目錄,這個(gè)目錄被稱為“沙盒”。
1.結(jié)構(gòu)
既然沙盒就是一個(gè)文件夾,那就看看里面有什么吧。沙盒的目錄結(jié)構(gòu)如下:
"應(yīng)用程序包"
Documents
Library
Caches
Preferences
tmp復(fù)制代碼
2.目錄特性
雖然沙盒中有這么多文件夾,但是沒(méi)有文件夾都不盡相同,都有各自的特性。所以在選擇存放目錄時(shí),一定要認(rèn)真選擇適合的目錄。
"應(yīng)用程序包": 這里面存放的是應(yīng)用程序的源文件,包括資源文件和可執(zhí)行文件。
NSString *path = [[NSBundle mainBundle] bundlePath];
NSLog(@"%@", path);復(fù)制代碼
Documents: 最常用的目錄,iTunes同步該應(yīng)用時(shí)會(huì)同步此文件夾中的內(nèi)容,適合存儲(chǔ)重要數(shù)據(jù)。
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSLog(@"%@", path);復(fù)制代碼
Library/Caches: iTunes不會(huì)同步此文件夾,適合存儲(chǔ)體積大,不需要備份的非重要數(shù)據(jù)。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
NSLog(@"%@", path);復(fù)制代碼
Library/Preferences: iTunes同步該應(yīng)用時(shí)會(huì)同步此文件夾中的內(nèi)容,通常保存應(yīng)用的設(shè)置信息。
tmp: iTunes不會(huì)同步此文件夾,系統(tǒng)可能在應(yīng)用沒(méi)運(yùn)行時(shí)就刪除該目錄下的文件,所以此目錄適合保存應(yīng)用中的一些臨時(shí)文件,用完就刪除。
NSString *path = NSTemporaryDirectory();
NSLog(@"%@", path);