Swift Xcode项目文件夹结构
我正在使用最新的XCode/Swift 3.0,并面临一些问题: 我在/MyProject/MyProject/Assets/Subfolder1中创建了一个文件夹,并在其中存储了几百个.txt文件,以便使用以下代码迭代子文件夹1中的文件:Swift Xcode项目文件夹结构,swift,xcode,Swift,Xcode,我正在使用最新的XCode/Swift 3.0,并面临一些问题: 我在/MyProject/MyProject/Assets/Subfolder1中创建了一个文件夹,并在其中存储了几百个.txt文件,以便使用以下代码迭代子文件夹1中的文件: let fm = FileManager.default fm.enumerator(atPath: "/MyProject/Assets/Subfolder1")?.forEach({ (e) in if let e = e as? String,
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”),但都不起作用
我必须指定的正确路径是什么?
最好的
Chris首先,确保已将实际文件夹添加到Xcode项目中。只需将文件夹拖放到项目中即可完成此操作。拖放后,应显示此窗口 确保您选择了
创建文件夹引用
,并在需要时选择复制项目
。这将确保整个文件夹在Xcode项目中持续同步。然后,为了验证在构建项目时资产是否会转移到您的设备,进入构建阶段
,然后进入复制捆绑资源
,您应该会看到文件夹的名称,在我的例子中,我将其命名为文本文件
现在,由于您已将文件夹添加到应用程序的主捆绑包中,您可以通过执行以下操作来访问它:
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
,而不能简单地说/TextFiles
,是因为如果我们说/TextFiles
,它会从系统根目录开始查找该文件夹,这就是它以前不工作的原因。这就像在C:/Users/Abc123/Documents/TextFiles
中有一个文件夹,但系统正在C:/TextFiles
中查找它,我重复了两次。不幸的是,这不太管用:/更新了我的答案,我在我的机器上测试了它,它是管用的。如果您有任何问题,请告诉我