
156
|
第九章
有些檔案在被複製到應用程式包時經過某種處理,例如,
.xib
檔案從它們
的 XML 原始碼被編譯成可更迅速讀取的二進制格式,還有,在 iOS 上,
PNG 圖像被處理過,好讓裝置的有限 GPU 能夠更容易地載入它們(然
而,這使得它們無法被 Preview 之類的應用程式所開啟)。別以為檔案只
是簡單地被複製到應用程式包裡﹗
使用 NSFileManager
應用程式能夠存取系統上幾乎任何地方的檔案,「幾乎任何地方」取決於你的應用程式
位在何種 OS 上,以及應用程式是否存在於沙箱(sandbox)內。
如〈應用程式沙箱〉(第 68 頁)的討論,沙箱限制你的應用程式的存取範圍。因此,即
使存心不良的程式碼危及你的應用程式,也不能夠存取(例如)使用者不想要它碰觸的
檔案。
預設上,沙箱限制應用程式的私有工作空間,並且令它無法存取任何使用者檔案。要存
取那些檔案,你必須請求系統處理對使用者顯示檔案選取方框的工作,並且在沙箱上開
洞
(
hole
),以便操作使用者想要讓你的應用程式存取的檔案(並且僅限於那些檔案)。
你的檔案系統介面是
NSFileManager
物件,它讓你列出檔案夾的內容;建立、重新命
名、以及刪除檔案;修改檔案和檔案夾的屬性;通常可以執行 Finder 所做的檔案系統相
關工作。
要存取
NSFileManager
類別,你使用共用管理器物件(shared manager object)︰
NSFileManager* fileManager = [NSFileManager defaultManager]; ...