国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

沙盒文件

2019-11-09 18:07:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
每個(gè)ios應(yīng)用都有自己的應(yīng)用沙盒,應(yīng)用沙盒就是文件系統(tǒng)目錄,與其他應(yīng)用的文件系統(tǒng)隔離,ios系統(tǒng)不允許訪問(wèn)其他應(yīng)用的應(yīng)用沙盒。在ios8中已經(jīng)開(kāi)放訪問(wèn)。 應(yīng)用沙盒一般包括以下幾個(gè)文件目錄:應(yīng)用程序包、Documents、Libaray(下面有Caches和PReferences目錄)、tmp。 應(yīng)用程序包:包含所有的資源文件和可執(zhí)行文件。 Documents:保存應(yīng)用運(yùn)行時(shí)生成的需要持久化的數(shù)據(jù),iTunes會(huì)自動(dòng)備份該目錄。蘋(píng)果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下,iTunes備份和恢復(fù)的時(shí)候會(huì)包括此目錄 tmp:保存應(yīng)用運(yùn)行時(shí)所需的臨時(shí)數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用沒(méi)有運(yùn)行時(shí),系統(tǒng)也有可能會(huì)清除該目錄下的文件,iTunes不會(huì)同步該目錄。iphone重啟時(shí),該目錄下的文件會(huì)丟失。 Library:存儲(chǔ)程序的默認(rèn)設(shè)置和其他狀態(tài)信息,iTunes會(huì)自動(dòng)備份該目錄。 Libaray/Caches:存放緩存文件,iTunes不會(huì)備份此目錄,此目錄下文件不會(huì)在應(yīng)用退出刪除。一般存放體積比較大,不是特別重要的資源。 Libaray/Preferences:保存應(yīng)用的所有偏好設(shè)置,ios的Settings(設(shè)置)應(yīng)用會(huì)在該目錄中查找應(yīng)用的設(shè)置信息,iTunes會(huì)自動(dòng)備份該目錄。 沙盒文件目錄獲取代碼://Home目錄NSString *homeDirectory = NSHomeDirectory(); //Document目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   NSString *path = [paths objectAtIndex:0];   //Cache目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);   NSString *path = [paths objectAtIndex:0];   //Libaray目錄NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);   NSString *path = [paths objectAtIndex:0];   //tmp目錄 NSString *tmpDir = NSTemporaryDirectory();           文件夾操作     創(chuàng)建文件夾:    沙盒文件夾操作使用系統(tǒng)Foundation框架下的NSFileManager文件操作類實(shí)現(xiàn)。在沙盒中新建文件夾,需指定新建文件夾的絕對(duì)路徑,然后手動(dòng)創(chuàng)建。并且要保證新建文件夾的上級(jí)路徑已經(jīng)存在,否則需要先創(chuàng)建上級(jí)文件夾路徑。文件夾的創(chuàng)建使用createDirectoryAtPath方法。    新建文件夾代碼: if ([[NSFileManager defaultManager] fileExistsAtPath:createPath])//判斷createPath路徑文件夾是否已存在,此處createPath為需要新建的文件夾的絕對(duì)路徑     {         return NO;     }     else     {                  [[NSFileManager defaultManager] createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];//創(chuàng)建文件夾         return YES;     }   pS:如何保證新建文件夾的父親文件夾已經(jīng)存在,ios的Foundation框架中的NSPathUtilities類中提供了一些操作路徑string的方法。  stringByDeletingLastPathComponent :去掉路徑中的最后一級(jí)成員  比如pp/ppp/pppp  操作過(guò)后則為:pp/ppp    pathComponents :拆分路徑 比如pp/ppp/pppp  執(zhí)行后得到一個(gè)NSArray數(shù)組,里面有三個(gè)元素為pp ppp pppp。  lastPathComponent :獲取路徑中的最后一級(jí)文件名  相關(guān)方法還有很多,可參考NSPathUtilities類。    刪除文件夾:    刪除文件夾,需先判定該文件夾是否存在(使用fileExistsAtPath方法),如果存在,執(zhí)行刪除操作(使用removeItemAtPath)。    刪除文件夾代碼: if([[NSFileManager defaultManager] fileExistsAtPath:pathFull])//如果存在臨時(shí)文件的配置文件     {         [[NSFileManager defaultManager]  removeItemAtPath:pathFull error:&error];     }    移動(dòng)文件夾:   文件夾移動(dòng)需要兩個(gè)參數(shù),文件夾原絕對(duì)路徑與目標(biāo)絕對(duì)路徑。使用moveItemAtPath 方法實(shí)現(xiàn)  移動(dòng)文件夾代碼: if([fileManager moveItemAtPath:prePath toPath:cenPath error:&error]!=YES)// prePath 為原路徑、     cenPath 為目標(biāo)路徑     {         NSLog(@"移動(dòng)文件失敗");     }     else     {         NSLog(@"移動(dòng)文件成功");     }    PS:文件夾移動(dòng)需要注意的是,要確保目標(biāo)路徑中除了目標(biāo)文件夾之外的路徑確實(shí)存在。否則移動(dòng)到一個(gè)還沒(méi)有創(chuàng)建的文件夾下,是會(huì)失敗的,這和創(chuàng)建文件夾是一樣的。    重命名文件夾:    重命名文件夾也需要兩個(gè)參數(shù),原絕對(duì)路徑與目標(biāo)絕對(duì)路徑,用了一個(gè)偷換概念的方式來(lái)實(shí)現(xiàn),其實(shí)用的是移動(dòng)文件夾的方法。不贅述。    獲取目錄下的所有文件名稱(包括文件夾與文件):    NSArray *fileNameList=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:imagesFolder error:nil];// fileNameList中即為該imagesFolder文件夾下的所有文件的名稱數(shù)組    文件操作:     寫(xiě)入文件:    寫(xiě)入文件需要首先判定該文件的父親文件夾是否存在,存在則可以進(jìn)行寫(xiě)入,否則需首先創(chuàng)建父親  路徑。使用writeToFile方法。寫(xiě)入文件的同時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建文件。  一般數(shù)據(jù)類型,比如數(shù)組、字典、NSData、NSString都可以直接調(diào)用writeToFile方法寫(xiě)入文件。    代碼: [arrayA writeToFile:filePath atomically:YES];      也可以手動(dòng)創(chuàng)建文件: [fileManager createFileAtPath:destinationPath contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]     讀取文件:    如果用戶知道文件內(nèi)容的數(shù)據(jù)類型比較規(guī)整,則可以直接讀取文件內(nèi)容到標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)中。   NSArray *arrayA = [[NSArray alloc]initWithContentsOfFile:filePath];        PS:或許有些時(shí)候,需要用到混合數(shù)據(jù)的寫(xiě)入與讀取,可以使用NSMutableData實(shí)現(xiàn)。參考網(wǎng)址 http://blog.csdn.net/totogo2010/article/details/7671144 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 肥乡县| 剑阁县| 夏河县| 潍坊市| 黎川县| 丹东市| 荔浦县| 拜泉县| 瓦房店市| 宁都县| 昌宁县| 贞丰县| 施秉县| 仙桃市| 边坝县| 炎陵县| 连云港市| 布尔津县| 灵武市| 文登市| 迁安市| 浏阳市| 萨嘎县| 神池县| 抚顺县| 武邑县| 潍坊市| 韶山市| 盐津县| 蓬溪县| 鹿邑县| 普兰县| 兴安县| 长岛县| 福安市| 郴州市| 永胜县| 会宁县| 陈巴尔虎旗| 雷州市| 清远市|