Xcode项目文件夹结构

时间:2017-04-30 22:01:05

标签: swift xcode

我正在使用最新的XCode / Swift 3.0并面临一些问题:

我在/ MyProject / MyProject / Assets / Subfolder1中创建了一个文件夹,并在其中存储了几百个.txt文件,使用以下代码迭代Subfolder1中的文件:

let fm = FileManager.default
fm.enumerator(atPath: "/MyProject/Assets/Subfolder1")?.forEach({ (e) in
    if let e = e as? String, let url = URL(string: e) {
        doSomethingWith(url.pathExtension)
    }
})

但我找不到任何文件。我尝试了一些变体(" / Assets / Subfolder1 /"和" / MyProject / MyProject / Assets / Subfolder1"),都没有用。

我必须指定的正确路径是什么?

最佳

克里斯

1 个答案:

答案 0 :(得分:1)

首先,请确保已将实际文件夹添加到Xcode项目中。只需将文件夹拖放到项目中即可完成此操作。拖放后,此窗口应显示

Add file window

确保选择Build PhasesCopy Bundle Resources。这将确保整个文件夹在Xcode项目中不断同步。然后在构建项目时验证资产是否会转移到您的设备,进入TextFiles然后转到let fm = FileManager.default let path = Bundle.main.resourcePath?.appending("/TextFiles") fm.enumerator(atPath: path!)?.forEach({ (e) in if let e = e as? String, let url = URL(string: e) { doSomethingWith(url.pathExtension) } }) ,您应该看到文件夹的名称,在我的情况下,我已将其命名为Bundle.main.resourcePath

enter image description here

现在因为您已将文件夹添加到应用程序的主程序包中,您可以通过执行以下操作来访问它:

/TextFiles

我们之前需要执行/TextFiles并且不能简单地说C:/Users/Abc123/Documents/TextFiles的原因是因为如果我们说C:/TextFiles它会从系统根目录查找该文件夹,这就是它之前没有工作的原因。这就像在.hidden-xs/sm/md/lg中有一个文件夹,但系统正在{{1}}中查找。