IOS管理檔案和目錄

來源:互聯網
上載者:User

標籤:

NSFileManeger檔案管理工具提供許多通用的檔案操作,使用者可以通過使用共用的檔案管理對象(NSFileManager *fm = [NSFileManager defaultManager];);ios和mac os x 10.5以後,使用者可以建立一個唯一的檔案管理工具委派物件。檔案管理工具可以用來 定位 建立 拷貝 移動 檔案和檔案夾。擷取 檔案或檔案夾 屬性(大小,修改日期,許可權),還可以用來改變 檔案和檔案夾的屬性。檔案管理工具支援 NSURL 和 NSString 兩種方式來定位檔案或檔案夾。NSURL通常是首選的方式,因為這種方式將路徑資訊轉換成更高效的表示。你也可以從NSURL中擷取一個“書籤”,一種類似別名的方式提供定位檔案或者檔案夾的方式。如果想要移動,拷貝,連結或刪除檔案或檔案夾,你可以使用一個檔案管理工具的代理來管理這些操作。代理是用來定義這些操作以及出錯後怎樣處理。mac os x 10.7以後,代理必須符合NSFileManagerDelegate協議。iOS 5.0 和 mac os x 10.7以後 ,NSFileManager引入了一些新方法,這些方法可以將檔案儲存至iCloud。用來儲存在雲端的檔案標籤和檔案夾標籤和iCloud中的應該是同步的。這樣可以使檔案在使用者的ios裝置和mac裝置之間共用。檔案或檔案夾在一處的更改將發送給其他裝置來確定這些更改同步。

NSFileManager的共用對象是安全執行緒的。但如果你使用了代理方式來接收檔案操作的訊息,需要自己建立一個單一實例的檔案管理對象來給代理,並使用該對象來完成檔案操作,保證安全執行緒。

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類進行喜好設定檔案的建立、讀取和修改

 

  

IOS管理檔案和目錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.