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

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

沙盒文件

2019-11-09 17:05:49
字體:
供稿:網(wǎng)友
每個ios應(yīng)用都有自己的應(yīng)用沙盒,應(yīng)用沙盒就是文件系統(tǒng)目錄,與其他應(yīng)用的文件系統(tǒng)隔離,ios系統(tǒng)不允許訪問其他應(yīng)用的應(yīng)用沙盒。在ios8中已經(jīng)開放訪問。 應(yīng)用沙盒一般包括以下幾個文件目錄:應(yīng)用程序包、Documents、Libaray(下面有Caches和PReferences目錄)、tmp。 應(yīng)用程序包:包含所有的資源文件和可執(zhí)行文件。 Documents:保存應(yīng)用運行時生成的需要持久化的數(shù)據(jù),iTunes會自動備份該目錄。蘋果建議將程序中建立的或在程序中瀏覽到的文件數(shù)據(jù)保存在該目錄下,iTunes備份和恢復的時候會包括此目錄 tmp:保存應(yīng)用運行時所需的臨時數(shù)據(jù),使用完畢后再將相應(yīng)的文件從該目錄刪除。應(yīng)用沒有運行時,系統(tǒng)也有可能會清除該目錄下的文件,iTunes不會同步該目錄。iphone重啟時,該目錄下的文件會丟失。 Library:存儲程序的默認設(shè)置和其他狀態(tài)信息,iTunes會自動備份該目錄。 Libaray/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應(yīng)用退出刪除。一般存放體積比較大,不是特別重要的資源。 Libaray/Preferences:保存應(yīng)用的所有偏好設(shè)置,ios的Settings(設(shè)置)應(yīng)用會在該目錄中查找應(yīng)用的設(shè)置信息,iTunes會自動備份該目錄。 沙盒文件目錄獲取代碼://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文件操作類實現(xiàn)。在沙盒中新建文件夾,需指定新建文件夾的絕對路徑,然后手動創(chuàng)建。并且要保證新建文件夾的上級路徑已經(jīng)存在,否則需要先創(chuàng)建上級文件夾路徑。文件夾的創(chuàng)建使用createDirectoryAtPath方法。    新建文件夾代碼: if ([[NSFileManager defaultManager] fileExistsAtPath:createPath])//判斷createPath路徑文件夾是否已存在,此處createPath為需要新建的文件夾的絕對路徑     {         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 :去掉路徑中的最后一級成員  比如pp/ppp/pppp  操作過后則為:pp/ppp    pathComponents :拆分路徑 比如pp/ppp/pppp  執(zhí)行后得到一個NSArray數(shù)組,里面有三個元素為pp ppp pppp。  lastPathComponent :獲取路徑中的最后一級文件名  相關(guān)方法還有很多,可參考NSPathUtilities類。    刪除文件夾:    刪除文件夾,需先判定該文件夾是否存在(使用fileExistsAtPath方法),如果存在,執(zhí)行刪除操作(使用removeItemAtPath)。    刪除文件夾代碼: if([[NSFileManager defaultManager] fileExistsAtPath:pathFull])//如果存在臨時文件的配置文件     {         [[NSFileManager defaultManager]  removeItemAtPath:pathFull error:&error];     }    移動文件夾:   文件夾移動需要兩個參數(shù),文件夾原絕對路徑與目標絕對路徑。使用moveItemAtPath 方法實現(xiàn)  移動文件夾代碼: if([fileManager moveItemAtPath:prePath toPath:cenPath error:&error]!=YES)// prePath 為原路徑、     cenPath 為目標路徑     {         NSLog(@"移動文件失敗");     }     else     {         NSLog(@"移動文件成功");     }    PS:文件夾移動需要注意的是,要確保目標路徑中除了目標文件夾之外的路徑確實存在。否則移動到一個還沒有創(chuàng)建的文件夾下,是會失敗的,這和創(chuàng)建文件夾是一樣的。    重命名文件夾:    重命名文件夾也需要兩個參數(shù),原絕對路徑與目標絕對路徑,用了一個偷換概念的方式來實現(xiàn),其實用的是移動文件夾的方法。不贅述。    獲取目錄下的所有文件名稱(包括文件夾與文件):    NSArray *fileNameList=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:imagesFolder error:nil];// fileNameList中即為該imagesFolder文件夾下的所有文件的名稱數(shù)組    文件操作:     寫入文件:    寫入文件需要首先判定該文件的父親文件夾是否存在,存在則可以進行寫入,否則需首先創(chuàng)建父親  路徑。使用writeToFile方法。寫入文件的同時,系統(tǒng)會自動創(chuàng)建文件。  一般數(shù)據(jù)類型,比如數(shù)組、字典、NSData、NSString都可以直接調(diào)用writeToFile方法寫入文件。    代碼: [arrayA writeToFile:filePath atomically:YES];      也可以手動創(chuàng)建文件: [fileManager createFileAtPath:destinationPath contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]     讀取文件:    如果用戶知道文件內(nèi)容的數(shù)據(jù)類型比較規(guī)整,則可以直接讀取文件內(nèi)容到標準數(shù)據(jù)結(jié)構(gòu)中。   NSArray *arrayA = [[NSArray alloc]initWithContentsOfFile:filePath];        PS:或許有些時候,需要用到混合數(shù)據(jù)的寫入與讀取,可以使用NSMutableData實現(xiàn)。參考網(wǎng)址 http://blog.csdn.net/totogo2010/article/details/7671144 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹阳市| 凉山| 西吉县| 正定县| 大同县| 静海县| 深水埗区| 沈阳市| 宁德市| 张家港市| 辽阳县| 静海县| 六盘水市| 竹溪县| 邮箱| 平顶山市| 镇赉县| 富源县| 曲阳县| 平和县| 桂林市| 堆龙德庆县| 东源县| 通州区| 南开区| 塔城市| 准格尔旗| 胶州市| 株洲县| 四会市| 偏关县| 辽宁省| 阿拉尔市| 达州市| 九江市| 和田县| 大同县| 肇东市| 清丰县| 稻城县| 津市市|