在Xcode中将文件移动到实际文件夹中

时间:2010-12-10 23:24:29

标签: xcode macos ios directory

当我开始我的项目时,我很高兴在Xcode中使用Groups而不是文字文件夹:因为我在Xcode中使用浏览器来访问所有内容,所以内容组织得非常好,我很高兴。

但是,现在该项目即将被共享用于版本控制,项目文件夹本身就是那些试图通过终端扫描它的人的恐怖节目,大约300个文件,其中一半以上是图形。

我正在尝试重组事物,创建真正的文件夹并将它们导入Xcode。不幸的是,Xcode不允许我像对待组一样使用它们。例如,如果我右键单击实际添加的文件夹(蓝色,而不是黄色)并选择添加现有文件,它实际上并不将它们放在该文件夹中,而是将它们放在其根目录中。

同样,我无法将文件从一个虚假文件夹(一个组)移动到一个真正的文件夹中:Xcode不认为真正的文件夹是有效的地方来移动东西。

我错过了什么?我怎么能说服Xcode让我按照我使用组的方式使用文件夹?这里有somewhat similar question的答案,但由于我正在使用现有文件,因此它实际上并没有解决我的问题。

12 个答案:

答案 0 :(得分:171)

2017年的一种现代(简单而死的简单!)方法(Xcode 6,7,8,有时9,因为它在某些时候自动完成):

如果您将一堆文件移动到一个新文件夹并保持子层次结构,那么它实际上比单独移动每个文件容易得多:

  1. 在Xcode文件夹树中创建新组,并根据需要将文件整理到其中。
  2. 在Finder中创建匹配的物理文件夹树,并将物理文件组织到其中,以匹配您在步骤1中执行的操作。
  3. Xcode中的所有引用现在都应该是红色的(可以!)。
  4. 在身份和类型管理器中,选择要重新定位的Xcode中的,然后单击信息窗格中的文件夹图标:

  5. 在Finder选择对话框中,找到您在步骤2中为该组创建的等效新文件夹。 All 该组中的文件现在将自动重新发现!

  6. 不是很好吗?对于您创建的每个新组,最多只需要重复这5个步骤(这可以分别重新定位每个文件!)

    奖励积分!

    假设您不小心弄乱了移动,现在一堆文件都是红色的,无法找到:选择多个文件,这些文件已损坏,并使用相同的文件夹图标步骤4中的屏幕截图,找到包含这些文件的正确文件夹,然后他们会自动解析丢失的路径。

答案 1 :(得分:118)

2017年6月进一步编辑: Xcode 9自动执行此操作,无需特殊操作。此答案和Brandon's仅适用于Xcode 8及更早版本。

2016年12月编辑:布兰登的答案现在是一个更好的解决方案。回到2010年创建这个答案时,这是我能找到的唯一选择。我现在建议Brandon's answer,在下面。


事实证明,将文件移动到真实文件夹当然是可能的,尽管不是应该如此简单。

我从这里的问题Xcode organising files and folders (core data model objects - iPhone)获得了基本信息,但在此过程中学到了重要的事情。

过程

移动文件分为两个步骤:

  1. 告诉Xcode您希望文件的位置:

    • 右键/按住Control键并单击要移动的文件或文件组,然后从显示的上下文菜单中选择获取信息。系统会显示组信息文件信息窗口
    • 点击路径区域中窗口最右侧的选择按钮。出现一个对话框
    • 导航到要将文件移动到的文件夹。如果需要,创建新文件夹。点击对话框右下角的选择按钮,然后关闭组信息/文件信息窗口。

    • 组中文件/文件的名称将变为红色,表示Xcode无法在您指定的位置找到它们。

  2. 移动实际文件

    • 在Finder(或Git)中将您在步骤1中选择的文件移动到您想要的实际文件夹中。

    • 切换回Xcode。文件/组应该再次变黑。如果有任何仍然是红色,那么你错过了移动到正确的文件夹。
  3. 提示

    在调整此项目中的~300个文件时,我学到了几个重要的事情:

    • 有些文件拒绝这样移动;也就是说,当您导航到新目的地时,选择按钮被禁用,新建文件夹按钮也是如此。解决方案虽然我不知道为什么会有所不同,但首先要使用Xcode将这些文件放入一个组中(右键/控制点击文件并选择,并给予该组一个名称)然后将组移动到新位置。在实际移动Finder中的文件后,您可以将它们从组中删除(通过将它们拖入新的父组/文件夹并删除组)。
    • 完成步骤2后,每隔几分钟就停止并构建一些文件。构建将告诉您是否已经搞砸了任何东西,在你造成太多伤害之前更容易返回并修复它。

    • 如果文件不会移动到你想要的位置 - 我有一段时间移动一些早期在Classes文件夹中创建的文件 - 你可以简单地将它们拖出旧的地方找到像桌面一样方便的地方,在Xcode中删除对它们的引用,然后通过右键/控制点击添加现有文件选项重新导入它们。

    • 如果过去你使用Xcode删除对文件的引用而不将它们移动到此项目中的垃圾箱,你会发现不必移动但只是坐在那里的文件。小心你不做我做的事情,混淆我正在移动的当前文件组的名称和旧的,不再链接的文件,坚持Xcode导入它们因为你认为它是密集的。

    希望这有助于未来的人。我很惊讶它很难,偶尔也很棘手。

答案 2 :(得分:104)

在Xcode 5或Xcode 6中:

  1. 在Finder中创建映射到您的论坛的文件夹
  2. 将文件移至Finder中的那些文件夹
  3. 选择左侧Xcode侧栏中的每个红色文件
  4. 单击“显示/隐藏实用程序”按钮以​​显示右侧边栏(参见图)
  5. 在“身份和类型”中,单击小按钮并选择文件位置(参见图)
  6. enter image description here

    干杯。

答案 3 :(得分:22)

我发现解决XCode令人震惊的设计的最可靠方法是在Finder中整理所有文件,原因有两个:

  1. 与XCode的GUI
  2. 不同,Finder不会犯“错误”
  3. 在Finder中组织完成后,您可以将整个Finder文件夹拖放到XCode中,并且......它可以完全按照您的要求进行操作
  4. 即使移动现有的XCode文件,也可以更快地执行此操作:

    1. 在Finder中选择文件
    2. 在Finder中为他们创建一个文件夹
    3. 将它们拖放到文件夹(自动移动它们)
    4. 将Finder文件夹拖放到Xcode中(自动:创建Xcode文件夹,添加Finder文件夹中的每个文件)
    5. cmd - 选择您现在在Xcode中看到的每个“红色”文件(因为您移动了它们)并点击删除键
    6. 注意:我从不使用“使用子组创建拖动文件夹”选项,因为在XCode 3中,它通常是无可救药的错误并且可能损坏项目。苹果显然(恕我直言)不会在内部使用此功能,否则它将永远不会被允许如此错误;如果Apple没有使用它,那么使用它通常也是不安全的 - 它们不擅长测试:)

答案 4 :(得分:21)

有一个简单的设置和使用命令行工具 - “synx”  可以在github中使用,完全符合此处所需。

它在finder中重新组织Xcode项目文件夹以匹配项目中的Xcode组。

你可以在这里找到它: https://github.com/venmo/synx

更新: XCode 9 默认支持此功能。所以,不再需要使用其他工具了!

答案 5 :(得分:5)

Xcode 9

Xcode 9现在默认支持它。将文件从一个组移动到另一个组时,该文件也将从旧文件夹移动到新文件夹。这是在2017年WWDC上宣布的。

答案 6 :(得分:3)

我使用以下工具来实现它。Organize Folders in Groups Xcode

--no-default-exclusions

答案 7 :(得分:2)

我通常直接在Finder中将文件移动到目录中,然后在“获取信息”对话框中修复XCode中带有红色名称的文件:单击“选择...”按钮并选择文件的新locatoin 。这是我想在XCode中移动文件的第一个响应,它可以工作。

答案 8 :(得分:1)

从Xcode 4.5开始,当您在文件夹结构中拖动时,它会自动转换为Project Navigator中的嵌套组。然后,如果你在磁盘上查看(例如右键单击并选择在Finder中显示),则保留文件夹结构。

我发现尝试从旧项目中解决问题只是一种痛苦。事实证明,删除这些文件并将其再次拖入更容易。

答案 9 :(得分:1)

要在xcode 4.5中移动文件夹我只是...

  1. 从xcode中删除文件/组,然后选择“删除参考”。
  2. 进入取景器并根据需要移动文件夹/文件。
  3. 完成后我回到Xcode并选择File-> Add Files to {ProjectName}。
  4. 确保选中“将项目复制到目标组的文件夹(如果需要)”
  5. 确保选中“为任何添加的文件夹创建组”
  6. 确保为项目选中“添加到目标”

答案 10 :(得分:1)

XCode 8最简单的技术....

假设您在逻辑组中有文件A,B,C,但希望将它们移动到硬盘驱动器上的文件夹中。

  1. 通过Finder创建目标文件夹
  2. 使用“选项”窗格在XCode(文件 - >添加文件)中添加文件夹以选择文件夹参考(不是组)
  3. 将文件A,B,C从(旧)组拖到项目导航器中的(新)文件夹引用。 XCode会将文件移动到项目中和磁盘上的文件夹中。
  4. 完成。

答案 11 :(得分:0)

在XCode 11(我刚刚在XCode 11.6上对此进行了验证)上,可以选择要在项目导航器下移动的文件,右键单击所选文件,然后单击“来自选择的新建组”。这将在磁盘上创建一个文件夹并适当地移动文件。