1. 程式人生 > >iOS沙盒文件夾及獲取路勁方法

iOS沙盒文件夾及獲取路勁方法

雜誌 str doc contents 緩存 ask type domain sea

iPhone沙盒中有四個文件夾,分別是:documents、tmp、app、library.

1、Documents :用戶生成的文檔或數據,或者應用不能重新新創建的數據,存儲在/Documents目錄下,並且會被自動備份到iCloud;

2、AppName.app :應用程序的包存儲在/app目錄下。由於應用程序必須經過簽名,所以該目錄下的內容不能修改,否則程序可能無法啟動;

3、tmp:臨時文件存放在該目錄下(應用程序再次啟動時不需要的信息,應用需要寫到本地存儲,內部使用的臨時數據,但不需要長期保留使用),文件不會被iCloud備份,應用在使用完之後需要記得刪除這些文件,這樣才不會繼續占用用戶設備的空間;

4、Library:其又被分為Caches和Preferences。其中Caches存放應用程序可以重新下載或生成的數據(保存應用程序再次啟動時需要的信息,如數據庫緩存文件、可下載文件(雜誌、報紙、地圖應用使用的數據)等),Preferences包含應用程序的偏好設置文件(不能直接創建偏好設置文件,需要通過使用NSUserDefaults類還獲取和設置應用程序的偏好設置)。

獲取這些目錄路徑的方法:

1,獲取家目錄(app文件)路徑的函數:

NSString *homePath = NSHomeDirectory();

2,獲取Documents目錄路徑的方法:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString *docDir =[paths objectAtIndex:0];

3,獲取Caches目錄路徑的方法:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);

NSString *cachesDir =[paths objectAtIndex:0];

4,獲取tmp目錄路徑的方法:

NSString *tmpDir = NSTemporaryDirectory();

5,獲取應用程序程序包中資源文件路徑的方法:

例如獲取程序包中一個圖片資源(apple.png)路徑的方法:

NSString *imagePath =[[NSBundle mainBundle]pathForResource:@”apple”ofType:@”png”];

UIImage *appleImage =[[UIImage alloc]initWithContentsOfFile:imagePath];

代碼中的mainBundle類方法用於返回一個代表應用程序包的對象。

iOS沙盒文件夾及獲取路勁方法