IOS--文件管理NSFileManager
iOS應(yīng)用產(chǎn)生的內(nèi)容,如圖像、文件、緩存內(nèi)容等都必須存儲(chǔ)在自己的沙盒內(nèi)。默認(rèn)情況下,每一個(gè)沙盒含有3個(gè)文件 夾:Documents, Library 和 tmp。
Library包括Caches、Preferences文件夾。 Documents:蘋果建議將程序創(chuàng)建產(chǎn)生的文件以及應(yīng)用瀏覽產(chǎn)生的文件數(shù)據(jù)保存在該文件夾下,iTunes備份和恢復(fù)的時(shí)候會(huì)包括此文件夾 Library:存儲(chǔ)程序的默認(rèn)設(shè)置或其他狀態(tài)信息; Library/Caches:存放緩存文件,保存應(yīng)用的持久化數(shù)據(jù)。用于應(yīng)用升級(jí)或者應(yīng)用關(guān)閉后的數(shù)據(jù)保存,不會(huì)被itunes同步,所以為了降低同步的時(shí)間,能夠考慮將一些比較大的文件而又不須要備份的文件放到這個(gè)文件夾下。 tmp:提供一個(gè)即時(shí)創(chuàng)建暫時(shí)文件的地方,但不須要持久化。在應(yīng)用關(guān)閉后,該文件夾下的數(shù)據(jù)將刪除。也可能系統(tǒng)在程序不執(zhí)行的時(shí)候清除。 a:獲取應(yīng)用沙盒根路徑: -(void)dirHome{ NSString *dirHome=NSHomeDirectory(); NSLog(@"app_home: %@",dirHome); } b:獲取Documents文件夾路徑: -(NSString *)dirDoc{ //[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSLog(@"app_home_doc: %@",documentsDirectory); return documentsDirectory; } c:獲取Library文件夾路徑: -(void)dirLib{ //[NSHomeDirectory() stringByAppendingPathComponent:@"Library"]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); NSString *libraryDirectory = [paths objectAtIndex:0]; NSLog(@"app_home_lib: %@",libraryDirectory); } d:獲取Cache文件夾路徑: -(void)dirCache{ NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *cachePath = [cacPath objectAtIndex:0]; NSLog(@"app_home_lib_cache: %@",cachePath); } e:獲取Tmp文件夾路徑: -(void)dirTmp{ //[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]; NSString *tmpDirectory = NSTemporaryDirectory(); NSLog(@"app_home_tmp: %@",tmpDirectory); } f:創(chuàng)建文件夾: -(void *)createDir{ NSString *documentsPath =[self dirDoc]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; // 創(chuàng)建文件夾 BOOL res=[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil]; if (res) { NSLog(@"文件夾創(chuàng)建成功"); }else NSLog(@"文件夾創(chuàng)建失敗"); } g:創(chuàng)建文件 -(void *)createFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; BOOL res=[fileManager createFileAtPath:testPath contents:nil attributes:nil]; if (res) { NSLog(@"文件創(chuàng)建成功: %@" ,testPath); }else NSLog(@"文件創(chuàng)建失敗"); } h:寫數(shù)據(jù)到文件: -(void)writeFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; NSString *content=@"測(cè)試寫入內(nèi)容!"; BOOL res=[content writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil]; if (res) { NSLog(@"文件寫入成功"); }else NSLog(@"文件寫入失敗"); } i:讀文件數(shù)據(jù): -(void)readFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; // NSData *data = [NSData dataWithContentsOfFile:testPath]; // NSLog(@"文件讀取成功: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); NSString *content=[NSString stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding error:nil]; NSLog(@"文件讀取成功: %@",content); } j:文件屬性: -(void)fileAttriutes{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:testPath error:nil]; NSArray *keys; id key, value; keys = [fileAttributes allKeys]; int count = [keys count]; for (int i = 0; i < count; i++) { key = [keys objectAtIndex: i]; value = [fileAttributes objectForKey: key]; NSLog (@"Key: %@ for value: %@", key, value); } } k:刪除文件: -(void)deleteFile{ NSString *documentsPath =[self dirDoc]; NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"]; BOOL res=[fileManager removeItemAtPath:testPath error:nil]; if (res) { NSLog(@"文件刪除成功"); }else NSLog(@"文件刪除失敗"); NSLog(@"文件是否存在: %@",[fileManager isExecutableFileAtPath:testPath]?@"YES":@"NO"); }
轉(zhuǎn)載于:https://www.cnblogs.com/blfbuaa/p/6940502.html
總結(jié)
以上是生活随笔為你收集整理的IOS--文件管理NSFileManager的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信主页怎么设置皮肤(微信主页界面怎么设
- 下一篇: 液晶电脑哪一年出的(中国液晶电脑什么时候