你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發中對文件目錄的訪問及管理的基本方法小結

iOS開發中對文件目錄的訪問及管理的基本方法小結

編輯:IOS開發綜合

文件目錄的訪問

最簡單的:(由於是沙盒關系,沒有文件夾概念的)
復制代碼 代碼如下:
UIImage* image = [UIImage imageNamed:@"11.png"];

這個已經是相對app裡面打包好的路徑,不需要額外添加路徑。


還有一種就是需要指定文件路徑的:

需要用到NSBundle.
復制代碼 代碼如下:
[[NSBundle mainBundle] resourcePath],這個就是程序的打包後的路徑。

如果需要指定路徑,就要這樣寫:

你也可自己拼接:
復制代碼 代碼如下:
NSString* path = [NSStringstringWithFormat:@"%@/%@/%@",[[NSBundlemainBundle] resourcePath],@"document",@"aaa.txt"];

或者直接:
復制代碼 代碼如下:
NSString* path = [[NSBundle mainBundle] pathForResource:@"aaa" ofType:@"png"];

一般來說應用程序有3個目錄

Documents,Library,tmp

現在apple不允許把大數據保存在documents文檔,如果你想把視頻什麼的保存在documents文檔裡面,需要備份到icould比較麻煩。

一般窩的做法就是保存在Library的caches目錄下面(不知道是否合理:))

tmp目錄的話,保存一些臨時文件,在退出程序的時候你可以把裡面的緩存內容刪除。


在應用程序中獲得自己的documents目錄:
復制代碼 代碼如下:
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString * documentDirectory = [paths objectAtIndex:0];

在上面的基礎上,獲得一個完整的文件路徑和名字:
復制代碼 代碼如下:
NSString * file = [documentDirectory stringByAppendingPathComponent:@"file1.txt"];

這就可以用file來創建,讀取,和寫入文件。

文件目錄管理
下面來看一些常用的文件目錄管理方法
1、常見的NSFileManager文件方法復制代碼 代碼如下:
-(NSData *)contentsAtPath:path  //從一個文件讀取數據


-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr  //向一個文件寫入數據


-(BOOL)removeItemAtPath:path error:err  //刪除一個文件


-(BOOL)moveItemAtPath:from toPath:to error:err  //重命名或者移動一個文件(to不能是已存在的)

-(BOOL)copyItemAtPath:from toPath:to error:err  //復制文件(to不能是已存在的)


-(BOOL)contentsEqualAtPath:path andPath:path2  //比較兩個文件的內容


-(BOOL)fileExistAtPath:path  //測試文件是否存在


-(BOOL)isReadableFileAtPath:path  //測試文件是否存在,並且是否能執行讀操作  


-(BOOL)isWriteableFileAtPath:path  //測試文件是否存在,並且是否能執行寫操作  


-(NSDictionary *)attributesOfItemAtPath:path error:err  //獲取文件的屬性  


-(BOOL)setAttributesOfItemAtPath:attr error:err  //更改文件的屬性

2.使用目錄復制代碼 代碼如下:
-(NSString *)currentDirectoryPath  //獲取當前目錄


-(BOOL)changeCurrentDirectoryPath:path  //更改當前目錄


-(BOOL)copyItemAtPath:from toPath:to error:err  //復制目錄結構(to不能是已存在的)


-(BOOL)createDirectoryAtPath:path withIntermediateDirectories:(BOOL)flag attribute:attr  //創建一個新目錄


-(BOOL)fileExistAtPath:path isDirectory:(BOOL*)flag  //測試文件是不是目錄(flag中儲存結果YES/NO)


-(NSArray *)contentsOfDirectoryAtPath:path error:err  //列出目錄內容


-(NSDirectoryEnumerator *)enumeratorAtPath:path  //枚舉目錄的內容


-(BOOL)removeItemAtPath:path error:err  //刪除空目錄


-(BOOL)moveItemAtPath:from toPath:to error:err   //重命名或移動一個目錄(to不能是已存在的)

3、常用路徑工具方法復制代碼 代碼如下:
+(NSString *)pathWithComponens:components  //根據components中的元素構造有效路徑


-(NSArray *)pathComponents  //析構路徑,獲得組成此路徑的各個部分


-(NSString *)lastPathComponent  //提取路徑的最後一個組成部分
-(NSString *)pathExtension  //從路徑的最後一個組成部分中提取其擴展名


-(NSString *)stringByAppendingPathComponent:path  //將path添加到現有路徑的末尾


-(NSString *)stringByAppendingPathExtension:ext  //將指定的擴展名添加到路徑的最後一個組成部分

-(NSString *)stringByDeletingLastPathComponent  //刪除路徑的最後一個組成部分


-(NSString *)stringByDeletingPathExtension  //從文件的最後一部分刪除擴展名

-(NSString *)stringByExpandingTileInPath   //將路徑中代字符擴展成用戶主目錄(~)或指定用戶的主目錄(~user)

-(NSString *)stringByresolvingSymlinksInPath  //嘗試解析路徑中的符號鏈接

-(NSString *)stringByStandardizingPath  //通過嘗試解析~、..(父目錄符號)、.(當前目錄符號)和符號鏈接來標准化路徑

4、常用的路徑工具函數復制代碼 代碼如下:
NSString* NSUserName(void)  //返回當前用戶的登錄名


NSString* NSFullUserName(void)  //返回當前用戶的完整用戶名


NSString* NSHomeDirectory(void)  //返回當前用戶主目錄的路徑


NSString* NSHomeDirectoryForUser(NSString* user)  //返回用戶user的主目錄


NSString* NSTemporaryDirectory(void)  //返回可用於創建臨時文件的路徑目錄

5、常用的IOS目錄復制代碼 代碼如下:
Documents(NSDocumentDirectory)  //用於寫入應用相關數據文件的目錄,在ios中寫入這裡的文件能夠與iTunes共享並訪問,存儲在這裡的文件會自動備份到雲端

Library/Caches(NSCachesDirectory)  //用於寫入應用支持文件的目錄,保存應用程序再次啟動需要的信息。iTunes不會對這個目錄的內容進行備份

tmp(use NSTemporaryDirectory())  //這個目錄用於存放臨時文件,只程序終止時需要移除這些文件,當應用程序不再需要這些臨時文件時,應該將其從這個目錄中刪除

Library/Preferences  //這個目錄包含應用程序的偏好設置文件,使用 NSUserDefault類進行偏好設置文件的創建、讀取和修改

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved