2013年6月10日 星期一

iOS App沙箱路徑

//用來得到App的存放目錄的路徑,在該目錄下有三個folder:一、Documents,二、Library,三、Temp,除此之外還有一個編譯完程式碼.app檔。
//這個目錄就是app的sandbox,代表這個iOS App只能存取這個目錄的範圍。
NSString *path = NSHomeDirectory();

//沙箱中的路徑
NSString *moviePath = [NSHomeDirectory() stringByAppendingString:@"/Documents/Movie.mp4"]; 

//公司測試機的沙箱路徑
/var/mobile/Applications/DEA6AF92-2D7C-435D-A318-XXXXXXXXXXXX/Documents/Movie.mp4


iPhone的檔案系統

因為安全性的因素,在iPhone OS下,每一個軟體的檔案以及資料夾都是被獨立隔開的,而每一個軟體可以讀取、寫入的檔案系統,大概可以用下列的結構顯示:
  • <程式根目錄>
    • 我的程式.app (程式的主要資料夾,只能讀取)
      • 我的程式
      • MainWindow.xib
      • 其他在Xcode中所加入的Resources
    • Documents
    • Library
      • Cache
      • Preference
以上這些資料,大多都會在iTunes同步時備份起來,而那我們要如何取得這些資料夾的路徑呢?請參考以下方法:
// 基本的目錄
NSString *homePath = NSHomeDirectory(); // 根目錄
NSString *tmpPath = NSTemporaryDirectory(); // 暫存目錄
// Documents 資料夾
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
// <程式根目錄>/Documents/foo.plist
NSString *fooPath = [documentsPath stringByAppendingPathComponent:@“foo.plist”];

沒有留言:

張貼留言