SandBox+NSBundle

一、iOS的文件系統
1.一、SandBox(沙箱、沙盒)
在iOS中,任何一個App都存放在本身的一個稱之爲SandBox中
1)SandBox的組成
a、Bundle Container:放應用程序的Bundle(包)
b、Data Container:
     Documents:用戶的數據基本都會放在這裏,其中數據會備份到iCloud或iTunes
     library:緩存數據、下載數據…,也會備份
     library/Caches:緩存數據,不會備份
     tmp:
 
- (NSString *)pathForResource:(NSString *)name
                       ofType:(NSString *)extension
 
NSFileHandle
 
//獲取AppSandbox路徑
NSString *sandboxPath = NSHomeDirectory();
NSLog(@"%@", sandboxPath);
//獲取Documents路徑
NSString *doc = [sandboxPath stringByAppendingPathComponent:@"Documents"];
NSLog(@"Doc:%@", doc);
//另外一種獲取Documents路徑
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);
doc = [paths firstObject];
簡:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYESfirstObject]
NSLog(@"Doc:%@", doc);
//獲取Library路徑
NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectoryNSUserDomainMaskYESfirstObject];
NSLog(@"%@", lib);
//獲取Libary下的Caches目錄
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectoryNSUserDomainMaskYESfirstObject];
NSLog(@"caches:%@", caches);
//獲取臨時目錄tmp
NSString *tmp = NSTemporaryDirectory();
NSLog(@"tmp:%@", tmp);
 
獲取應用程序自己的路徑:NSBundle類
此類的對象表明一個資源包:
應用程序包。main bundle
  其餘資源包, 圖片資源...
//如何獲取應用程序自己的路徑
NSBundle *mainBundle =[NSBundle mainBundle];//mainBundle對象表明應用程序自己的內容
NSString *path = [mainBundle pathForResource:@"a" ofType:@"png"];
NSLog(@"path:%@", path);
//獲取URL
NSURL *url = [mainBundle URLForResource:@"a" withExtension:@"png"];
NSLog(@"url:%@", url);
本站公眾號
   歡迎關注本站公眾號,獲取更多信息