(原創)ios沙盒-沙盒介紹,文件目錄結構

iOS開發中,涉及到文件的下載,保存,上傳,製作等等,需要我們去找到文件夾,查看到底我們的代碼成功了沒有。在模擬器中的沙盒目錄如下:

文件夾路徑圖片:
這裏寫圖片描述

  1. home

    • Documents 目錄:應該將所有的應用程序數據文件寫入到這個目錄下。這個目錄用於存儲用戶數據或其它應該定期備份的信息。

    • Li brary 目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
      Preferences 目錄:包含應用程序的偏好設置文件。您不應該直接創建偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程序的偏好.
      Caches 目錄:用於存放應用程序專用的支持文件,保存應用程序再次啓動時需要的信息

    • tmp 目錄:這個目錄用於存放臨時文件,應用關閉時會清除

  2. 程序包目錄
    • AppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的本身。由於應用程序必須經過簽名,所以您在運行時不能對這個目錄中的內容進行修改,否則可能會使應用程序無法啓動。
    //home路徑
    NSString *homeDir = NSHomeDirectory();
    NSLog(@"%@", docPath); 
    ///Users/zk/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Data/Application/0DFE0B5E-8708-4369-90E2-D7F65E0533C7

    //document路徑
    NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docPath = [docPaths objectAtIndex:0];
    NSLog(@"%@", docPath);  
///Users/zk/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Data/Application/0DFE0B5E-8708-4369-90E2-D7F65E0533C7/Documents

    //library路徑
    NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libPath = [libPaths objectAtIndex:0];
    NSLog(@"%@", libPath);  
///Users/zk/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Data/Application/0DFE0B5E-8708-4369-90E2-D7F65E0533C7/Library

    //library-caches路徑
    NSString *libCachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSLog(@"%@", libCachePath);  
///Users/zk/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Data/Application/0DFE0B5E-8708-4369-90E2-D7F65E0533C7/Library/Caches

    //tmp路徑
    NSString *tmpPaths = NSTemporaryDirectory(); 
    NSLog(@"%@", tmpPaths);  
///Users/zk/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Data/Application/0DFE0B5E-8708-4369-90E2-D7F65E0533C7/tmp

    //程序包目錄
    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *imagePath = [mainBundle pathForResource:@"coupon_bk" ofType:@"png"];
    NSLog(@"%@", imagePath);  ///Users/zhangke/Library/Developer/CoreSimulator/Devices/CDA65D19-BC91-4A3A-B3AE-A954750F1E27/data/Containers/Bundle/Application/F6B3D963-6C4E-44F9-9C4D-38584B392A33/app.app/coupon_bk.png
//通過上層路徑append字符串形式也可以獲得目標路徑
NSString *tmpPaths = [NSHomeDirectory() stringByAppendingFormat:@"/tmp"];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章