ios NSFileManager 用法詳解

2021-06-19 10:12:38 字數 3740 閱讀 5871

iphone檔案系統nsfilemanager講解是本文要介紹的內容,主要是通過iphone檔案系統來學習nsfilemanager的使用方法,具體內容來看本文詳解。

iphone檔案系統:建立、重新命名以及刪除檔案,nsfilemanager中包含了用來查詢單詞庫目錄、建立、重新命名、刪除目錄以及獲取/設定檔案屬性的方法(可讀性,可編寫性等等)。

每個程式都會有它自己的沙盒,通過它你可以閱讀/編寫檔案。寫入沙盒的檔案在程式的程序中將會保持穩定,即便實在程式更新的情況下。

如下所示,你可以在沙盒中定位檔案目錄:

//對於錯誤資訊  

nserror *error;  

// 建立檔案管理器  

nsfilemanager *

filemgr

= [nsfilemanagerdefaultmanager];  

//指向檔案目錄  

nsstring *

documentsdirectory

= [nshomedirectory()   

//建立乙個目錄  

[[nsfilemanager defaultmanager]   createdirectoryatpath: [nsstring stringwithformat:@"%@/myfolder", nshomedirectory()] attributes:nil]; 

建立乙個檔案

現在我們已經有了檔案目錄,我們就能使用這個路徑在沙盒中建立乙個新檔案並編寫一段**:

// file we want to create in the documents directory我們想要建立的檔案將會出現在檔案目錄中  

// result is: /documents/file1.txt結果為:/documents/file1.txt  

nsstring *

filepath

= [documentsdirectory  

//需要寫入的字串  

//寫入檔案  

[str writetofile:filepath atomically:yes   

encoding:nsutf8stringencoding error:&error];  

//顯示檔案目錄的內容  

nslog(@"documentsdirectory: %@",  

[filemgr contentsofdirectoryatpath:documentsdirectoryerror:&error]); 

我們為想要建立的檔案構建一條路徑(file1.txt),初始化乙個字串來寫入檔案,並列出目錄。最後一行顯示了在我們建立檔案之後出現在檔案目錄下的乙個目錄列表:

對乙個檔案重新命名

想要重新命名乙個檔案,我們需要把檔案移到乙個新的路徑下。下面的**建立了我們所期望的目標檔案的路徑,然後請求移動檔案以及在移動之後顯示檔案目錄。

//通過移動該檔案對檔案重新命名  

nsstring *

filepath2

= [documentsdirectory  

//判斷是否移動  

if ([filemgr moveitematpath:filepath topath:filepath2 error:&error] != yes)  

nslog(@"unable to move file: %@", [error localizeddescription]);  

//顯示檔案目錄的內容  

nslog(@"documentsdirectory: %@",   

[filemgr contentsofdirectoryatpath:documentsdirectoryerror:&error]); 

在移動了檔案之後,輸出結果應該如下圖所示:

刪除乙個檔案

為了使這個技巧完整,讓我們再一起看下如何刪除乙個檔案:

//在filepath2中判斷是否刪除這個檔案  

if ([filemgr removeitematpath:filepath2 error:&error] != yes)  

nslog(@"unable to delete file: %@", [error localizeddescription]);  

//顯示檔案目錄的內容  

nslog(@"documentsdirectory: %@",  

[filemgr contentsofdirectoryatpath:documentsdirectoryerror:&error]); 

一旦檔案被刪除了,正如你所預料的那樣,檔案目錄就會被自動清空:

這些示例能教你的,僅僅只是檔案處理上的一些皮毛。想要獲得更全面、詳細的講解,你就需要掌握nsfilemanager檔案的知識。

在開發iphone程式時,有時候要對檔案進行一些操作。而獲取某乙個目錄中的所有檔案列表,是基本操作之一。通過下面這段**,就可以獲取乙個目錄內的檔案及資料夾列表。

nsfilemanager *

filemanager

= [nsfilemanager defaultmanager];  

//在這裡獲取應用程式documents資料夾裡的檔案及資料夾列表  

nsarray *

documentpaths

= nssearchpathfordirectoriesindomains

(nsdocumentdirectory, nsuserdomainmask, yes);  

nsstring *

documentdir

= [documentpaths objectatindex:0];  

nserror *

error

= nil

;  nsarray *

filelist

= [[nsarray alloc] init];  

//filelist便是包含有該資料夾下所有檔案的檔名及資料夾名的陣列  

filelist

= [filemanager contentsofdirectoryatpath:documentdir error:&error]; 

以下這段**則可以列出給定乙個資料夾裡的所有子資料夾名

nsmutablearray *

dirarray

= [[nsmutablearray alloc] init];  

bool 

isdir

= no

;  //在上面那段程式中獲得的filelist中列出資料夾名  

for (nsstring *file in filelist)   

isdir

= no

;  }  

nslog(@"every thing in the dir:%@",filelist);  

nslog(@"all folders:%@",dirarray); 

小結:關於iphone檔案系統nsfilemanager講解的內容介紹完了,希望通過本文的學習能對你有所幫助!

ios NSFileManager 用法詳解

iphone檔案系統nsfilemanager講解是本文要介紹的內容,主要是通過iphone檔案系統來學習nsfilemanager的使用方法,具體內容來看本文詳解。iphone檔案系統 建立 重新命名以及刪除檔案,nsfilemanager中包含了用來查詢單詞庫目錄 建立 重新命名 刪除目錄以及獲...

nginx limit req zone用法詳解

nginx可以使用ngx http limit req module模組的limit req zone指令進行限流訪問,防止使用者惡意攻擊刷爆伺服器。ngx http limit req module模組是nginx預設安裝的,所以直接配置即可。首先,在nginx.conf檔案中的http模組下配置...

優先佇列priority queue 用法詳解

優先佇列是佇列的一種,不過它可以按照自定義的一種方式 資料的優先順序 來對佇列中的資料進行動態的排序 每次的push和pop操作,佇列都會動態的調整,以達到我們預期的方式來儲存。例如 我們常用的操作就是對資料排序,優先佇列預設的是資料大的優先順序高 所以我們無論按照什麼順序push一堆數,最終在佇列...