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

Posted

技术标签:

【中文标题】如何检索特定目录中的.wav文件列表[重复]【英文标题】:How to retrieve a list of .wav files in specific directory [duplicate] 【发布时间】:2018-02-13 01:58:28 【问题描述】:

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

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

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

Bundle.main.paths(forResourcesOfType: "wav", inDirectory: "Sounds")

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

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

此外,我对 ios 目录结构有点不清楚。 例如,Bundle.mainDocumentDirectory 中的目录列表有什么不同?

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

【问题讨论】:

"我在项目的根目录中创建了一个名为 Sounds 的目录。"确切地说,你是如何做到的?请记住,group 在这里对你没有用处;您需要一个文件夹参考。您是否了解其中的区别,以及如何进行文件夹引用? 我在 XCode 的主项目文件夹下创建了 Sounds 文件夹。我假设这样做会自动创建一个文件夹引用。 你假设错了。你创建的是一个组。 我假设一个组是象征性的?换句话说,它不是一个“真正的”文件夹(就像在 Visual Studio 中为 C++ 项目创建新文件夹时一样) Bundle 是您的应用程序中包含的所有文件所在的位置,而文档目录是您存储使用应用程序时生成的文件的位置 【参考方案1】:

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

这听起来像是问题所在。您需要一个文件夹引用,而是创建了一个组。

正确的步骤如下:

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

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

通过检查 Sounds 文件夹是否出现在 Copy Bundle Resource 构建阶段,确认您已正确完成:

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

【讨论】:

最优雅的解决方案。无需将引用的文件夹放置在远离桌面的位置。例如,将文件夹放置在与 .xcodeproj 文件相同的级别允许将引用的文件夹置于版本控制之下。 @ElisevanLooij 这是一个很好的观点。我将删除对桌面的引用;我认为我们不会失去任何普遍性。

以上是关于如何检索特定目录中的.wav文件列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中使用 os.walk 获取特定文件或目录列表?

如何将单个文件中的特定列重复替换为另一个文件的列?

使用ffmpeg在特定时间向wav文件添加静音[重复]

如何使用psql中表中的列列表检索数据

本机查询 - 如何仅从数据库中检索实体的特定列

如何从此列表中检索列数据