Ios 获取Swift子目录中资源的所有URL

Ios 获取Swift子目录中资源的所有URL,ios,swift,xcode,nsfilemanager,subdirectory,Ios,Swift,Xcode,Nsfilemanager,Subdirectory,我正在尝试为iOS应用程序子目录中的所有资源创建URL数组。我似乎无法找到正确的路径,我希望能够检索URL,即使我不知道名称(即,我不想硬编码到代码中的文件名) 下面是层次结构的屏幕截图,我正在尝试获取“测试”文件夹中的所有文件: 非常感谢您的帮助,我已经尝试过使用文件管理器和bundle主路径,但到目前为止没有任何乐趣 这是我目前仅有的代码: let fileManager = FileManager.default let path = Bundle.main.urls(forResour

我正在尝试为iOS应用程序子目录中的所有资源创建URL数组。我似乎无法找到正确的路径,我希望能够检索URL,即使我不知道名称(即,我不想硬编码到代码中的文件名)

下面是层次结构的屏幕截图,我正在尝试获取“测试”文件夹中的所有文件:

非常感谢您的帮助,我已经尝试过使用文件管理器和bundle主路径,但到目前为止没有任何乐趣

这是我目前仅有的代码:

let fileManager = FileManager.default
let path = Bundle.main.urls(forResourcesWithExtension: "pdf", subdirectory: "Files/test")

print(path)
我也尝试过这段代码,但这会打印所有资源,我似乎无法指定子目录:

let fm = FileManager.default
let path = Bundle.main.resourcePath!

do {
    let items = try fm.contentsOfDirectory(atPath: path)

    for item in items {
        print("Found \(item)")
    }
} catch {
    // failed to read directory – bad permissions, perhaps?
}
根据@vadian的回答,文件夹已从虚拟组更改为真实文件夹。使用以下代码,我能够获得资源列表:

let fileManager = FileManager.default
    let path = Bundle.main.resourcePath

    let enumerator:FileManager.DirectoryEnumerator = fileManager.enumerator(atPath: "\(path!)/Files/test")!
    while let element = enumerator.nextObject() as? String {
        if element.hasSuffix("pdf") || element.hasSuffix("jpg") { // checks the extension
            print(element)
        }
    }

考虑黄色文件夹是虚拟的组,而不是真实的文件夹(尽管Xcode在项目目录中创建了真实的文件夹)。构建应用程序时,黄色文件夹中的所有文件都会移动到捆绑包中的
Resources
目录中


捆绑包中的真实文件夹位于project navigator中。

您可以按照以下步骤获取它们:

  • 在项目文件夹中创建一个新文件夹,扩展名为.bundle(例如:Images.bundle
  • 将资源文件复制到该新文件夹中
  • 将新文件夹拖动到Xcode中打开的项目中
  • 使用以下代码段检索URL:

    let urls = Bundle.main.urls(forResourcesWithExtension: nil, subdirectory: "Images.bundle")
    

  • 您也可以在此处查看指南视频:

    请显示您编写的代码far@AshleyMills更新的问题,并没有任何代码真的,因为我已经尝试过的东西,并删除了,若我并没有幸运汉克为那个,我其实不知道。它帮助我找到了一个可能的答案。将编辑我的问题以让其他人知道。