Just a Computer Graphics Studio & My Life

[iOS] 檔案路徑 (File Path)

在程式裡頭時常需要使用資料來運作,若能瞭解各檔案路徑專門存放的檔案類型(靜態動態),將能使開發過程更明確與方便,比如將時常會變動的資料(動態資料)放在Document,絕對不會變動的資料(靜態資料)放在Resource,另外暫時產生的資料則放Temporary。

iOS的檔案系統

因為安全性的考量,在iOS下,每一個軟體的檔案資料夾都是被獨立隔開,而每一個軟體可以讀取和寫入的檔案系統,大致可以用下列的結構顯示:

<程式根目錄>

  • 我的程式.app (程式的主要資料夾,只能讀取)
    • 我的程式
    • MainWindow.xib
    • 其他在Xcode中所加入的Resources
  • Documents
  • Library
    • Cache
    • Preference

各資料夾路徑的取得


// 基本的目錄
 NSString *homePath = NSHomeDirectory(); // 根目錄
 NSString *tmpPath = NSTemporaryDirectory(); // 暫存目錄
 // Documents 資料夾
 NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsPath = [paths objectAtIndex:0];
 // <程式根目錄>/Documents/happyman.plist
 NSString *happymanPath = [documentsPath stringByAppendingPathComponent:@“happyman.plist”];

應用程式路徑的取得


NSString *appPath = [[NSBundle mainBundle] bundleIdentifier];

會取得路徑如:

/Users/happyman/Library/Application Support/iPhone Simulator/6.0/Applications/xxx-yyy-zzz-aaa-bbb/HappymanApp.app

終端機打指令:open “路徑",即可打開該資料夾查看,不過只能用在模擬器,實機上無法作用。


NSString *filePath =  [[NSBundle mainBundle] pathForResource:@"HappyManSettings" ofType:"plist"];

就可以取得在HappymanApp.app裡頭的HappyManSettings.plist這個檔案路徑。

註:在debug模式遇到中斷點時打指令:po NSHomeDirectory(),即可獲得根目錄路徑。

參考:Inside – 第九堂課摘要及心得筆記、Furnace – 對 Document 中的檔案存取方法

Advertisements

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: