iOS 应用程序中的子目录

Posted

技术标签:

【中文标题】iOS 应用程序中的子目录【英文标题】:Subdirectories within an iOS application 【发布时间】:2009-01-06 23:50:16 【问题描述】:

有没有办法在.app 中拥有目录?

目前,如果我将文件添加到 Xcode,无论它位于哪个组层次结构中,该文件始终位于我的应用程序包内的平面文件系统中。

【问题讨论】:

我相信这也适用于 OS X 应用程序。 仅供参考,Xcode 中的组层次结构是假装的。只是为了方便对 Xcode 列表中的文件进行分组。不代表或创建文件夹/目录。 【参考方案1】:

如果您只想将现有文件复制到应用程序包的 Resources 文件夹(在 iPhone 上它只是 .app 包的内部),请执行以下操作:

将要复制的文件夹拖到 xcode 项目的文件和文件夹列表中。 在弹出的询问您是否要将文件添加到目标的工作表中,将单选按钮更改为“为任何添加的文件夹创建文件夹引用”。

您拖入的文件夹及其所有内容将在构建过程中逐字复制。

【讨论】:

这很完美!我在项目层次结构中获得了蓝色文件夹的层次结构,这些文件夹被添加到我的复制捆绑资源中。首先尝试我错过了“为任何添加的文件夹创建文件夹引用”,但在重新查看说明(愚蠢的阅读障碍)之后,它就像一个魅力。 顺便说一句,在我看来,你应该宣传这个比 Jasons 更有帮助的答案。 我重新接受了这个问题的答案,因为这样做更容易(而且显而易见)。 一直想知道文件夹引用在幕后有什么不同。谢谢你分享这个。非常非常有用。【参考方案2】:

在您的应用程序的目标下,您必须添加一个复制文件阶段。然后,您可以在应用程序包中指定要将文件复制到的子目录。将有一堆用于特定事物(如资源和框架等)的默认目录,但您可以选择任何您想要的目录。构建应用程序包时,您指定的文件将被复制到包中的位置。

【讨论】:

旁注 - 对于放置文件的默认根目录,您可能希望选择“可执行”,以便您的子目录最终位于应用程序包的根目录中 - 然后您可以在其中查找该子目录通常会查找其他文件,然后在其中找到您需要的文件。 我不明白。这是否意味着替换现有的 Copy Bundle? (有什么意义)我如何控制哪些文件与哪个副本捆绑在一起,或者我只能拥有(实际上是子目录)?难道不能制作一个同步文件层次结构的副本包吗? 可以,可以保留一组文件的层次结构;将它们复制到您的项目中并将它们添加为文件夹引用而不是组。引用的文件夹被添加到应用程序包中,其结构保持不变。

以上是关于iOS 应用程序中的子目录的主要内容,如果未能解决你的问题,请参考以下文章

iOS 是不是会清除文档目录中的磁盘使用量?

iOS应用程序更新文件目录中的文件问题

如何对 iOS 文档目录中的目录进行计数

如何从其他 iOS 应用程序读取我应用程序的 Document 目录中的文档?

使用 Swift 删除 iOS 目录中的文件

iOS:资产目录中的启动图像上的黑线