Ios沙盒目錄清單
1 Documents
用於存儲用戶生成的文件、其他數據及其他程序不能重新創建的文件,默認文件通過iCloud自動備份。如果不需要iCloud備份,則設置標記
NSURLIsExcludedFromBackupKey,注明不備份
1.1 讀取Documents目錄代碼
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"path:%@", path);
1.2 標記不備份文件
+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); NSError *error = nil; BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; if(!success){ NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); } return success; }
2 Library
存儲項目緩存,常用設置等
2.1 讀取Cache目錄代碼
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path);
2.2 讀取Library目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSLog(@"%@", path);
3 temp
只是臨時使用的數據應該保存到 <Application_Home>/tmp 文件夾。盡管 iCloud 不會備份這些文件,但在應用在使用完這些數據之后要注意隨時刪除,避免占用用戶設備的空間
3.1讀取temp文件夾
NSString *tmpDir = NSTemporaryDirectory(); NSLog(@"%@", tmpDir);
4 項目自帶的.bundle資源束
項目自帶的資源存放在.bundle中這些資源只讀不能寫
NSString *defaultDBPath = [[NSBundlemainBundle] resourcePath];