IOS App檔案儲存目錄
IOS系統為每一個App開闢獨立的儲存空間,也就是我們常說的沙盒(sandbox)。App儲存目錄結構可以分為如下4個:(1)xxx.app (2)Documents (3)Library (4)tmp
(1)xxx.app
該目錄存放應用本身資料,以及程式打包的資原始檔和一些本地檔案, 程式的可執行程式和Plist檔案也在該目錄。獲取該路徑資源可以通過 [[NSBundlemainBundle]pathForResource:@"str"ofType:@"type"]
其中 str為檔名稱、type為檔案的指定型別。如png 、html等。 在開發webApp的過程中,一般前端開發者會使用通過命名不同的檔案區分不同檔案存放,如JS、CSS等等資料夾的命名,當把這些檔案加入在本地,xxx.app不會分多級目錄儲存,所有的檔案將儲存根目錄,所以在html引用的時候JS或者CSS等相關檔案時,應當獲取當前目錄,而不是多層級目錄。
如正確路徑為
而不是
(2)Documents
蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,iTunes備份和恢復的時候會包括此目錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
NSString*docpath=[paths objectAtIndex:0];
(3)Library
Library
分為Preferences和Caches目錄,Library多數用來儲存一些配置檔案。NSUserDefaults儲存的資料會儲存到
Library/Preferences目錄下的一個plist檔案中。Library/Caches用於存放快取檔案。 這個目錄中的Preferences會被iTunes同步。
獲取對應的路徑步驟基本和Documents基本一樣,區別在於傳入的引數不一樣
Caches:NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
Preferences:NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES);
(4)tmp
tmp:提供一個建立臨時檔案的地方。iPhone在重啟時會清除所有的tmp檔案。