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》