四.文件系統

1- 概述
     bundle(沙盒):一個應用只能在自己的沙盒中讀取或存儲文件,而不能操作其他沙盒中的文件。好處:保護應用的隱私不受侵犯,保護系統文件的安排,應用刪除後相關文件也能被全部清除。
    每個應用都有自己的沙盒,沙盒的根目錄的獲取方法是NSHomeDirectory()。
    根目錄下的內容:
         -.app文件,實際上是一個文件夾,包含了可執行文件、Nib文件、圖片資源、plist等。XCode中能看到的資源,及編譯後的可執行文件,都封裝在app中。
        -Documents文件夾,用於存放你的應用所產生的數據,該文件夾可通過iTunes備份,可以存儲遊戲進度等。
        -Library文件夾,用於存放用戶偏好和臨時文件。
        -tmp文件夾是系統的中轉站。


2-文件管理器
    NSFileManager,defaultManager()返回一個文件管理器的單例(多線程下不安全)。init(),在多線程編程中應儘量使用init()。
    代理方法:-fileManager:shouldRemoveItemAtPath和-fileManager:shouldRemoveItemAtURL在移除操作之前被調用。
    -removeItemAtPath:error:刪除位於指定路徑的文件、連接、目錄(及其所有子目錄、文件)。
    -removeItemAtURL:error:同上。
    -contentOfDirectoryAtPath:查找所有位於給定路徑的子路徑和文件。返回值爲一個數組,其中包含了NSString對象。查找只在當前目錄進行,不會進入下一層目錄。
    -subpathsAtPath:查找給定路徑下的所有子路徑。深度查找,不限於當前層,也會查找package的內容。
    -fileExistsAtPath:判斷文件是否位於一個路徑下面。
    -isReadableFileAtPath:查詢文件的可讀性
    -isWritableFileAtPath:可寫性
    -isExecutableFileAtPath:查詢文件的可執行性
    -isDeletableFileAtPath:可刪除性


3-NSString的路徑功能
    -pathWithComponent:參數是一堆components構成的數組,返回的路徑是由這些components連接而成的路徑字符串,相鄰components之間用/隔開。
    -pathComponents:返回一個數組,包含路徑中的components。
    -fileSystemRepresentation:返回C字符串
    -isAbsolutePath:判斷是否爲絕對路徑
    -pathExtension:返回文件的擴展名,沒有的就返回空字符串
    -stringByAppendingPathComponents :向現有路徑添加一個component。斜槓/會被自動加上
    -stringByAppendingPathExtension:向現有路徑加上文件的擴展名
    -stringByDeletingLastPathComponent:移除最後一個路徑component
    -stringByDeletingPathExtension:刪除路徑擴展名
    -stringByAppendingPaths:參數爲一個數組,此方法將數組中的字符串對象作爲路徑一次添加到源字符串後面。


例子:

1. NSString *homePath = NSHomeDirectory(); 

2. NSString *docPath = [homePath stringByAppendingFormat:@"/Documents"]; 


發佈了91 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章