iphone檔案系統:建立、重新命名以及刪除檔案
nsfilemanager中包含了用來查詢單詞庫目錄、建立、重新命名、刪除目錄以及獲取/設定檔案屬性的方法(可讀性,可編寫性等等)。
每個程式都會有它自己的沙盒,通過它你可以閱讀/編寫檔案。寫入沙盒的檔案在程式的程序中將會保持穩定,即便實在程式更新的情況下。
如下所示,你可以在沙盒中定位檔案目錄:
//對於錯誤資訊
nserror *error;
// 建立檔案管理器
nsfilemanager *filemgr = [nsfilemanagerdefaultmana
ger];
//指向檔案目錄
nsstring *documentsdirectory= [nshomedirectory()
ponent:@"documents"];
//建立乙個目錄
[[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
ponent:@"file1.txt"];
//需要寫入的字串
//寫入檔案
[str writetofile:filepath atomically:yes
encoding:nsutf8stringencoding error:&error];
//顯示檔案目錄的內容
nslog(@"documentsdirectory: %@",
[filemgr contentsofdirectoryatpat
h:documentsdirectoryerror:&error]);
我們為想要建立的檔案構建一條路徑(file1.txt),初始化乙個字串來寫入檔案,並列出目錄。最後一行顯示了在我們建立檔案之後出現在檔案目錄下的乙個目錄列表:
對乙個檔案重新命名
想要重新命名乙個檔案,我們需要把檔案移到乙個新的路徑下。下面的**建立了我們所期望的目標檔案的路徑,然後請求移動檔案以及在移動之後顯示檔案目錄。
//通過移動該檔案對檔案重新命名
nsstring *filepath2= [documentsdirectory
ponent:@"file2.txt"];
//判斷是否移動
if ([filemgr moveitematpath:filepath topath:filepath2 error:&error] != yes)
nslog(@"unable to move file: %@", [error localizeddescription]);
//顯示檔案目錄的內容
nslog(@"documentsdirectory: %@",
[filemgr contentsofdirectoryatpat
h:documentsdirectoryerror:&error]);
在移動了檔案之後,輸出結果應該如下圖所示:
刪除乙個檔案
為了使這個技巧完整,讓我們再一起看下如何刪除乙個檔案:
//在filepath2中判斷是否刪除這個檔案
if ([filemgr removeitematpath:filepath2 error:&error] != yes)
nslog(@"unable to delete file: %@", [error localizeddescription]);
//顯示檔案目錄的內容
nslog(@"documentsdirectory: %@",
[filemgr contentsofdirectoryatpat
h:documentsdirectoryerror:&error]);
一旦檔案被刪除了,正如你所預料的那樣,檔案目錄就會被自動清空:
這些示例能教你的,僅僅只是檔案處理上的一些皮毛。想要獲得更全面、詳細的講解,你就需要掌握nsfilemanager檔案的知識。
在開發iphone程式時,有時候要對檔案進行一些操作。而獲取某乙個目錄中的所有檔案列表,是基本操作之一。通過下面這段**,就可以獲取乙個目錄內的檔案及資料夾列表。
複製**
nsfilemanager *filemanager = [nsfilemanager defaultmanager];
//在這裡獲取應用程式documents資料夾裡的檔案及資料夾列表
nsarray *documentpaths = nssearchpathfordirectori
esindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *documentdir = [documentpaths objectatindex:0];
nserror *error = nil;
nsarray *filelist = [[nsarray alloc] init];
//filelist便是包含有該資料夾下所有檔案的檔名及資料夾名的陣列
filelist = [filemanager contentsofdirectoryatpat
h: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講解
iphone檔案系統nsfilemanager講解是本文要介紹的內容,主要是通過iphone檔案系統來學習nsfilemanager的使用方法,具體內容來看本文詳解。iphone檔案系統 建立 重新命名以及刪除檔案,nsfilemanager中包含了用來查詢單詞庫目錄 建立 重新命名 刪除目錄以及獲...
檔案系統 why檔案系統
為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...
檔案系統 檔案系統的架構
vfs是具體檔案系統的抽象,依靠超級塊 inode dentry以及檔案這些結構來發揮作用,檔案系統的架構就體現在這些結構的使用方式中。1 超級塊作用分析 1 2 所有的dentry都指向乙個dentry hashtable dentry hashtable是乙個樹組,每乙個樹組成員都是hash鍊錶...