【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理_第1頁
【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理_第2頁
【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理_第3頁
【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理_第4頁
【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】iOS開發(fā)-文件管理

一、iOS中的沙盒機制iOS應(yīng)用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一般存放著程序包文件(可執(zhí)行文件)、圖片、音頻、視頻、plist文件、sqlite數(shù)據(jù)庫以及其他文件。每個應(yīng)用程序都有自己的獨立的存儲空間(沙盒)一般來說應(yīng)用程序之間是不可以互相訪問模擬器沙盒的位置/User/userName/Library/ApplicationSupport/iPhoneSimulator當我們創(chuàng)建應(yīng)用程序時,在每個沙盒中含有三個文件,分別是Document、Library和temp。Document:一般需要持久的數(shù)據(jù)都放在此目錄中,可以在當中添加子文件夾,iTunes備份和恢復(fù)的時候,會包括此目錄。Library:設(shè)置程序的默認設(shè)置和其他狀態(tài)信息temp:創(chuàng)建臨時文件的目錄,當iOS設(shè)備重啟時,文件會被自動清除獲取沙盒目錄獲取程序的根目錄(home)目錄NSString*homePath

=NSHomeDirectory()獲取Document目錄NSArray

*paths

=NSSearchPathDorDirectoriesInDomains(NSDocumentDicrectory,,NSUserDomainMark,YES);

NSString*docPath

=

[pathslastObject];獲取Library目錄NSArray*paths

=NSSearchPathForDirectoriseInDomains(NSLibraryDirectory,NSUserDomainMask,YES);

NSString*docPath

=

[pathslastObject];

獲取Library中的CacheNSArray*paths

=NSSearchPathForDirectoriseInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString*docPath

=

[pathslastObject];獲取temp路徑NSString*temp

=NSTemporaryDirectory(

);二、NSString類路徑的處理方法文件路徑的處理NSString*path

=

@"/Uesrs/apple/testfile.txt"常用方法如下獲得組成此路徑的各個組成部分,結(jié)果:("/","User","apple","testfile.txt")-

(NSArray*)pathComponents;提取路徑的最后一個組成部分,結(jié)果:testfile.txt-

(NSString

*)lastPathComponent;刪除路徑的最后一個組成部分,結(jié)果:/Users/apple-

(NSString*)stringByDeletingLastPathCpmponent;將path添加到先郵路徑的末尾,結(jié)果:/Users/apple/testfile.txt/app.txt-

(NSString

*)stringByAppendingPathConmponent:(NSString

*)str;去路徑最后部分的擴展名,結(jié)果:text-

(NSString

*)pathExtension;刪除路徑最后部分的擴展名,結(jié)果:/Users/apple/testfile-

(NSString

*)stringByDeletingPathExtension;路徑最后部分追加擴展名,結(jié)果:/User/apple/testfile.txt.jpg-

(NSString

*)stringByAppendingPathExtension:(NSString

*)str;三、NSDataNSData是用來包裝數(shù)據(jù)的NSData存儲的是二進制數(shù)據(jù),屏蔽了數(shù)據(jù)之間的差異,文本、音頻、圖像等數(shù)據(jù)都可用NSData來存儲NSData的用法1.NSString與NSData互相轉(zhuǎn)換NSData->NSString

NSString*aString

=

[[NSStringalloc]initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSData

NSString*aString

=

@"1234abcd";NSData*aData

=

[aStringdataUsingEncoding:NSUTF8StringEncoding];

將data類型的數(shù)據(jù),轉(zhuǎn)成UTF8的數(shù)據(jù)+(NSString*)dataToUTF8String:(NSData

*)data{NSString*buf

=

[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];return[bufautorelease];}將string轉(zhuǎn)換為指定編碼

+(NSString*)changeDataToEncodinString:(NSData

*)dataencodin:(NSStringEncoding)encodin{

NSString*buf

=

[[[NSStringalloc]initWithData:dataencoding:encodin]autorelease];

returnbuf;}2.NSData與UIImageNSData->UIImageUIImage*ap_w_picpath

=

[UIImagep_w_picpathWithData:p_w_picpathData];

//例:從本地文件沙盒中取圖片并轉(zhuǎn)換為NSDataNSString*path

=

[[NSBundlemainBundle]bundlePath];NSString*name

=

[NSStringstringWithFormat:@"ceshi.png"];NSString*finalPath

=

[pathstringByAppendingPathComponent:name];NSData*p_w_picpathData

=

[NSDatadataWithContentsOfFile:finalPath];UIImage*ap_w_picpath

=

[UIImagep_w_picpathWithData:p_w_picpathData];3.NSData與NSArray

NSDictionary+(NSString*)getLocalFilePath:(NSString

*)fileName{return[NSStringstringWithFormat:@"%@/%@%@",NSHomeDirectory(),@“Documents”,fileName];}包括將NSData寫進Documents目錄從Documents目錄讀取數(shù)據(jù)在進行網(wǎng)絡(luò)數(shù)據(jù)通信的時候,經(jīng)常會遇到NSData類型的數(shù)據(jù)。在該數(shù)據(jù)是dictionary結(jié)構(gòu)的情況下,系統(tǒng)沒有提供現(xiàn)成的轉(zhuǎn)換成NSDictionary的方法,為此可以通過Category對NSDictionary進行擴展,以支持從NSData到NSDictionary的轉(zhuǎn)換。聲明和實現(xiàn)如下:

+

(NSDictionary*)dictionaryWithContentsOfData:(NSData

*)data

{

CFPropertyListReflist=CFPropertyListCreateFromXMLData(kCFAllocatorDefault,

(CFDataRef)data,kCFPropertyListImmutable,NULL);

if(list==nil)returnnil;

if([(id)listisKindOfClass:[NSDictionaryclass]])

{

return[(NSDictionary

*)listautorelease];

}

else{

CFRelease(list);

returnnil;

}

}四、文件管理常用方法NSFileManager創(chuàng)建一個文件并寫入數(shù)據(jù)

-

(BOOL)createFileAtPath:(NSString*)pathcontents:(NSData*)dataattributes:(NSDictionary*)attr;從一個文件中讀取數(shù)據(jù)

-

(NSData

*)contentsAtPath:(NSString

*)path;scrPath路徑上的文件移動到dstPath路徑上,注意這里的路徑是文件路徑而不是目錄

-

(BOOL)moveItemAtPath:(NSString

*)srcPathtoPath:(NSString*)dstPatherror:(NSError**)error;scrPath路徑上的文件復(fù)制到dstPath路徑上

-

(BOOL)copyItemAtPath:(NSString*)scrPathtoPath:(NSString*)dstPatherror:(NSError**)error;比較兩個文件的內(nèi)容是否一樣

-

(BOOL)contentsEqualAtPath:(NSString*)path2andPath:(NSString*)path3;文件時候存在

-

(BOOL)fileExistsAtPath:(NSString

*)path;移除文件

-

(BOOL)removeItemAtPath:(NSString

*)patherror:(NSError**)error;創(chuàng)建文件管理NSFileManager*fileManager

=

[NSFileManagerdefaultManager];

NSString*path

=

[NSHomeDirectory(

)

stringByAppendingPathComponent:@"holyBible.txt"];

NSString*text

=

@"abcdefg";

將字符串轉(zhuǎn)成NSData類型

NSData*data

=

[textdataUsingEncoding:NSUTF8StringEncoding];

寫入文件

BOOLsuccess=

[fileManagercreateFileAtPath:pathcontents:dataattributes:nil];創(chuàng)建文件夾

NSString*filePath

=

[pathstringByAppendingPathComponent:@"holyBible.txt"];

NSString*contect

=

@"abcdefg";

BOOLsuccess=

[fmcreateFileAtPath:filePathcontents:[contentdataUsingEncoding:NSUTF8StringEncoding]attributes:nil];NSFileManager-讀取內(nèi)容

NSData*fileData

=

[fileManagercontentsAtPath:filePath];

NSString*content

=

[[NSStringalloc]initWithData:fileDatadataUsingEncoding:NSUTF8StringEncoding];NSData-讀取內(nèi)容

NSString*filePath

=

[pathstringByAppendingPathComponent:@"holyBible.txt"];

NSData*data

=

[NSDatadataWithContentOfFile:filePath];NSString-讀取內(nèi)容

NSString*filePath

=

[pathstringByAppendingPathComponent:@"holyBible.txt"];

NSString*content

=

[[NSStringstringWithContentsOfFile:filePathencoding:NSUTF8StringEncodingerror:nil];移動、復(fù)制文件

移動文件(重命名)

NSString*toPath

=

[NSHomeDirectory(

)stringByAppendingPathComponent:@"hellogod/NewTestament.txt"];

[fmcreateDirectoryAtPath:[toPathstringByDeletingLastPathComponent]withIntermediateDirectories:YESattributes:nilerror:nil];

NSError*error;

BOOLisSuccess=

[fmmoveItemAtPath:filePathtoPath:toPatherror:&error];復(fù)制文件(重命名)

NSString*copyPath

=

[NSHomeDirectory(

)stringByAppendingPathComponent:@"備份/OldTestament.txt"];

[fmcreateDirectoryAtPath:[toPathstringByDeletingLastPathComponent]withIntermediateDirectories:YESattributes:nilerror:nil];

BOOLsuccess=

[fmcopyItemAtPath:toPathtoPath:toPatherror:nil];刪除文件、獲取文件大小判斷文件是否存在和刪除文件

if([fmfileExistsAtPath])

{

if([fmremoveItemAtPath:copyPath])

{

NSLog(@"removesuccess");

}

}獲取文件大小

NSFileManager*fileManager

=

[NSFileManagerdefaultManager];

獲得文件的屬性字典

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論