如何检索特定目录中的.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.main
和DocumentDirectory
中的目录列表有什么不同?
我已经编辑了我的问题,因为我错误地暗示 Sounds
文件夹位于根目录中。
【问题讨论】:
"我在项目的根目录中创建了一个名为 Sounds 的目录。"确切地说,你是如何做到的?请记住,group 在这里对你没有用处;您需要一个文件夹参考。您是否了解其中的区别,以及如何进行文件夹引用? 我在 XCode 的主项目文件夹下创建了 Sounds 文件夹。我假设这样做会自动创建一个文件夹引用。 你假设错了。你创建的是一个组。 我假设一个组是象征性的?换句话说,它不是一个“真正的”文件夹(就像在 Visual Studio 中为 C++ 项目创建新文件夹时一样) Bundle 是您的应用程序中包含的所有文件所在的位置,而文档目录是您存储使用应用程序时生成的文件的位置 【参考方案1】:我在项目的根目录中创建了一个名为 Sounds 的目录
这听起来像是问题所在。您需要一个文件夹引用,而是创建了一个组。
正确的步骤如下:
在 Finder 中,在某处创建一个名为 Sounds 的文件夹。现在将该文件夹拖到项目窗口的项目导航器中,然后仔细查看出现的对话框。您需要它看起来像这样(注意作为文件夹参考的关键名称):
你会知道你做对了,因为项目导航器中的文件夹图标将是蓝色:
通过检查 Sounds 文件夹是否出现在 Copy Bundle Resource 构建阶段,确认您已正确完成:
现在您的策略将奏效:将文件从 Finder 拖到项目导航器中的蓝色文件夹中,它们将被复制到真正的“声音”文件夹中。 “Sounds”文件夹本身将在构建时复制到您的应用程序包中,您可以使用普通 FileManager 方法在代码中引用其内容。
【讨论】:
最优雅的解决方案。无需将引用的文件夹放置在远离桌面的位置。例如,将文件夹放置在与 .xcodeproj 文件相同的级别允许将引用的文件夹置于版本控制之下。 @ElisevanLooij 这是一个很好的观点。我将删除对桌面的引用;我认为我们不会失去任何普遍性。以上是关于如何检索特定目录中的.wav文件列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章