如何检索特定目录中的 .wav 文件列表

WBu*_*uck 3 ios swift swift4

我在 XCode 的主项目文件夹下创建了一个名为Sounds. 然后我将 8 个类型的音频文件拖到wavSounds文件夹​​中。我确保Copy items if needed在对话框提示时进行检查。

wav我当前正在尝试检索该目录中所有文件的列表Sounds

我尝试了多种不同的方法,但以下是最新的方法。

Bundle.main.paths(forResourcesOfType: "wav", inDirectory: "Sounds")
Run Code Online (Sandbox Code Playgroud)

上面的代码以及我的其他尝试要么产生了结果nil,要么得到了一个空数组。

wav所以我的问题是,如何从目录中检索所有类型文件的列表Sounds

另外,我对iOS目录结构有点不清楚。例如,位于Bundle.main和 的目录列表之间有什么不同DocumentDirectory

我编辑了我的问题,因为我错误地暗示该Sounds文件夹位于根目录中。

mat*_*att 5

\n

我在项目的根目录中创建了一个名为 Sounds 的目录

\n
\n

这听起来就是问题所在。您需要一个文件夹引用 \xe2\x80\x94,但您创建了一个组。

\n

这是正确的程序:

\n

在 Finder 中,在某处创建一个名为 Sounds 的文件夹。现在将该文件夹拖到项目窗口的项目导航器中,然后仔细查看出现的对话框。您需要它看起来像这样(注意作为文件夹引用的关键名称关键名称):

\n

在此输入图像描述

\n

您会知道您做对了,因为项目导航器中的文件夹图标将是蓝色的:

\n

在此输入图像描述

\n

通过检查“声音”文件夹是否出现在“复制捆绑资源”构建阶段来确认您已正确完成此操作:

\n

在此输入图像描述

\n

现在您的策略将起作用:将文件从 Finder 拖到项目导航器中的蓝色文件夹中,它们将被复制到真正的“Sounds”文件夹中。“Sounds”文件夹本身将在构建时复制到您的应用程序包中,您可以使用普通的 FileManager 方法在代码中引用其内容。

\n

  • 最优雅的解决方案。无需将引用的文件夹放置在离桌面那么远的地方。例如,将该文件夹放置在与 .xcodeproj 文件相同的级别,可以将引用的文件夹置于版本控制之下。 (2认同)