Mac OS X下的文件系統是由一種在特殊區域組織相關文件和數據的方法構成的。文件系統中的每一個文件都有它自己的空間而且應用程序需要知道在哪裏去放置它們創建的文件。這在你向App Store發佈你的應用程序時尤其重要。
如下的列表列出了應用程序一般要交互的文件夾在文件夾前面有一個字符~表示了該文件夾在home文件夾中,它可以表示擁護的home文件夾或者應用程序的容器文件夾(如果應用程序是在沙盒中)。因爲用於條件的不同,文件的真實路徑可能也不同,使用 NSFileManager類的URLsForDirector:inDomains:方法來檢索文件的實際路徑。你也可以自己想反悔的URL對象添加自定義文件夾和文件名信息來完善路徑。
Applicaions文件夾 | 該文件夾是你的應用程序束的安裝文件夾。全局Applications文件夾的路徑是/Applications,但是用戶文件夾可能擁有一個局部applications文件夾包括用戶特殊應用。無論如何,你都不需要直接來使用這個路徑。爲了在你的應用程序束中使用這些資源,用一個NSBundle的對象來代替。 |
Home文件夾 | 對你應用程序的配置決定了home文件夾的位置,如下所示。 ·對於在Mac OS X10.7或者更高版本的運行在沙盒中的應用程序,home文件夾是應用程序的容器文件夾。 ·對於運行在沙盒外的(包括Mac OS X10.7以前的版本),home文件夾/Users下的用戶特殊的子文件夾,包含了用戶文件。 爲了檢索home文件夾的路徑,可以使用NSHomeDirectory方法。 |
Library文件夾 | Library文件夾是用來存儲與程序相關的私有數據和引用的頂級文件夾。在系統中包含了很多個分散的Library文件夾,但是你應該總是使用當前home文件夾下的那一個。 不要在頂層Library文件夾下直接存儲文件。取而代之的是,將它們存儲在一個自己命名的子文件夾下。 在Mac OS X10.7和以後的版本,Finder默認隱藏了用戶home文件夾下的Library文件夾。因此你將永遠不會直接在這個文件夾中存儲文件。 爲了得到這個文件夾的路徑,可以在NSUserDomainMask中使用NSLibraryDirectory參數。 |
Application Support文件夾 | 該文件夾是你的程序用來存儲各種支持程序的文件,但是卻不需要運行的文件。比如說文檔模板或者配置文件。這些文件應該是每個應用程序特殊的。而且應用不應該存儲用戶數據。這個文件夾在Library文件夾中。 永遠不要再這個文件夾的頂層存儲數據:將它們存進一個用你程序或者公司命名的子文件夾中。 如果一些自用是對系統中所有用戶通用的,比如說文檔模板,將它們放在/Library/Application Support。爲了獲取文件的路徑,可以在NSUserDomainMask中使用NSApplicationSupportDirectory參數。如果一些資源是用戶特定的,比如說工作空間的配置文件,將它們放在當前用戶的~/Library/Application Support文件夾中,爲了獲取浙西文件夾的路徑可以在NSUserDomainMask中使用NSApplicationSupportDirectory參數。 |
Caches文件夾 | Cache文件夾是用來存儲你的緩存文件和其他臨時數據在你的程序要需要重構時。這個文件夾在Library文件夾中。 同樣不要在該文件夾的頂層來存儲文件:將他們存儲在以你程序或者公司命名的子文件夾中。你的程序需要負責清理cache文件夾。系統不會自動清理該文件夾中的任何文件或數據。 爲了得到該文件夾的路徑,可以在NSUserDomainMask中使用NSCachesDirectory參數。 |
Movies文件夾 | Movies文件夾包括了用戶的視頻文件。 爲了得到該文件夾的路徑,可以在NSUserDomainMask中使用NSMoviesDirectory參數。 |
Music文件夾 | Music文件夾包括了用戶的音樂和聲音文件。 爲了得到該文件夾的路徑,可以在NSUserDomainMask中使用NSMusicDirectory參數。 |
Pictures文件夾 | Pictures文件夾包含了用戶的圖片和照片 爲了得到該文件夾的路徑,可以在NSUserDomainMask中使用NSPicutresDirectory參數。 |
Temporary文件夾 | Temporary文件夾是用來存儲那些不需要在重複運行你的程序時存儲的文件。通常用這個文件夾抓取文件或者其他生存週期比較短的數據文件,同時與你程序的持久化數據無關。一般這個文件夾對用戶是隱藏的。 你的應用程序應該在完成與其相關的操作時及時清空該文件夾中的文件。而且,系統同樣會在啓動時清空該文件夾中的內容。 爲了得到該文件夾的路徑,課使用NSTemporaryDirectory方法。 |
文章轉自《Mac OS X Programming Guide》