1. 程式人生 > >iOS檔案目錄結構

iOS檔案目錄結構

問題:iOS程式執行後,應用資料會存放在哪個位置,相關的一些執行資料,要儲存的資料會存放到哪裡。在這些地方儲存,什麼時候會被銷燬。 iPhone沙箱模型有三個資料夾:  因為應用是在沙箱(sandbox)中的,在檔案讀寫許可權上受到限制,只能在幾個目錄下讀寫檔案: 1. Documents: 應該將所有的應用程式資料檔案寫入到這個目錄下。這個目錄用於儲存使用者資料或其他應該定期備份的資訊。iTunes備份和恢復的時候會包括此目錄 路徑獲取方法:
	[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]
2. Library: 有兩個子目錄:Caches Preferences Caches: 用於存放應用程式專用的支援檔案,儲存應用程式再次啟動過程中需要的資訊。(iTunes不會備份和恢復此目錄,此目錄下檔案可能會在應用退出後刪除) Preferences:包含應用程式的偏好設定檔案。不過不應該直接建立偏好設定檔案,而是應該使用NSUserDefaults類來取得和設定應用程式的偏好。 3. tmp:用於存放臨時檔案,iTunes不會備份和恢復此目錄,此目錄下檔案可能會在應用退出後刪除 AppName.app: 應用程式的程式包目錄,包含應用程式的本身。由於應用程式必須經過簽名,所以在執行時不能對這個目錄中的內容進行修改,否則可能會使應用程式無法啟動。 NSSearchPathForDirectoriesInDomains 只能獲取到Documents目錄和Library Caches這兩個檔案路徑,如果要獲得其他的則需要獲取應用根路徑:NSHomeDirectory() 然後再進行拼接才可以使用。 例如如果要查詢路徑:tmp
 NSString *tmpStr = NSHomeDirectory();
   tmpStr = [tmpStr stringByAppendingPathComponent:@"tmp"];

或使用:
 NSString *temporary =  NSTemporaryDirectory();
建立檔案可以使用NSFileManager