iOS開(kāi)發(fā)之沙盒機(jī)制(SandBox)詳細(xì)講解了沙盒的一些機(jī)制。在開(kāi)發(fā)中,我們需要對(duì)沙盒進(jìn)行操作,所以我們需要獲取到沙盒路徑。
沙盒里的文件夾包括Documents、Library、tmp。這三個(gè)文件夾的作用請(qǐng)點(diǎn)擊這里。(文件夾的作用 如下:)接下來(lái)我們來(lái)講解如何獲取Documents、Library、tmp的路徑。
獲取沙盒根目錄
獲取沙盒根目錄,直接調(diào)用NSHomeDirectory():
//獲取沙盒根目錄
NSString*directory=NSHomeDirectory();
NSLog(@"directory:%@",directory);
控制臺(tái)輸出:
2015-07-2200:40:16.185iOSStrongDemo[1605:555658]directory:/var/mobile/Containers/Data/Application/F9418815-51A9-4A0A-A76C-6FD37C400928
這個(gè)是真機(jī)的路徑,大家有時(shí)間的話可以看看模擬器的根目錄路徑。
獲取Documents路徑
獲取Documents路徑如下:
//獲取Documents路徑
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制臺(tái)輸出:
2015-07-2200:41:41.397iOSStrongDemo[1613:556159]path:/var/mobile/Containers/Data/Application/A62B886B-A8F0-4215-B59D-1F505C3997BD/Documents
獲取Documents文件夾目錄,第一個(gè)參數(shù)是說(shuō)明獲取Doucments文件夾目錄,第二個(gè)參數(shù)說(shuō)明是在當(dāng)前應(yīng)用沙盒中獲取。
獲取Library路徑
//獲取Library路徑
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制臺(tái)輸出:
2015-07-2200:43:15.803iOSStrongDemo[1619:556638]/var/mobile/Containers/Data/Application/17300507-4643-4DE7-BC68-E13DB19C8D98/Library
獲取Caches路徑
//獲取Caches路徑
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
控制臺(tái)輸出:
2015-07-2200:44:31.383iOSStrongDemo[1626:557083]path:/var/mobile/Containers/Data/Application/1E945B52-E29D-4041-A489-1AA1B11BB960/Library/Caches
獲取tmp路徑
NSString*tmp=NSTemporaryDirectory();
NSLog(@"tmp:%@",tmp);
控制臺(tái)輸出:
2015-07-2200:46:07.846iOSStrongDemo[1632:557537]tmp:/private/var/mobile/Containers/Data/Application/4BE02307-1CC5-47E8-BEA8-CEBB7ED5A402/tmp/
以上是iOS開(kāi)發(fā)中獲取沙盒路徑的方法,也許還有更好的獲取方法等待我們?nèi)グl(fā)現(xiàn)。后面我們還會(huì)講到關(guān)于在沙盒里進(jìn)行讀寫文件操作。
移除沙盒路徑的某個(gè)文件或者某個(gè)文件夾
ios 下創(chuàng)建,刪除文件夾的方法
2011-11-11 15:05:42|??分類:iphone 筆記
創(chuàng)建文件夾:
NSString*imageDir = [NSStringstringWithFormat:@"%@/Caches/%@",NSHomeDirectory(), dirName];
BOOLisDir =NO;
NSFileManager*fileManager = [NSFileManagerdefaultManager];
BOOLexisted = [fileManagerfileExistsAtPath:imageDirisDirectory:&isDir];
if( !(isDir ==YES&& existed ==YES) )
{
[fileManagercreateDirectoryAtPath:imageDirwithIntermediateDirectories:YESattributes:nilerror:nil];
}
刪除文件夾及文件級(jí)內(nèi)的文件:
NSString*imageDir = [NSStringstringWithFormat:@"%@/Caches/%@",NSHomeDirectory(), dirName];
NSFileManager*fileManager = [NSFileManagerdefaultManager];
[fileManagerremoveItemAtPath:imageDirerror:nil];
沙盒機(jī)制簡(jiǎn)介
沙盒簡(jiǎn)述:
每一個(gè)APP都有一個(gè)存儲(chǔ)空間,就是沙盒。
APP之間不能相互通信。
沙盒根目錄結(jié)構(gòu):Documents、Library、temp。
簡(jiǎn)述一下Documents、Library、tmp的區(qū)別:
Documents:用于存儲(chǔ)用戶數(shù)據(jù),iTunes備份和恢復(fù)的時(shí)候會(huì)包括此目錄,所以,蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下。
Library:包含兩個(gè)子目錄:Caches 和 Preferences。Caches用來(lái)存放用戶需要換成的文件。Preferences是APP的偏好設(shè)置,可以通過(guò)NSUserDefaults來(lái)讀取和設(shè)置。
tmp:用于存放臨時(shí)文件,這個(gè)可以放一些當(dāng)APP退出后不再需要的文件。