如何获取项目中的plist文件列表

Posted

技术标签:

【中文标题】如何获取项目中的plist文件列表【英文标题】:How to get the plist file lists in project 【发布时间】:2017-05-23 04:57:07 【问题描述】:

我有一些数据文件,例如

AAA.plist
BBB.plist
CCC.plist

我想获取这些 plist 文件的列表。 如果我事先知道文件名, 我可以得到这样的文件。

 let path : String = Bundle.main.path(forResource: "AAA", ofType: "plist")!
 var qplist = NSArray(contentsOfFile: path)

但是我想在事先不知道文件名的情况下获取plist文件列表。

【问题讨论】:

【参考方案1】:

您可以为此使用urls(forResourcesWithExtension:subdirectory:)

if let urls = Bundle.main.urls(forResourcesWithExtension: "plist", subdirectory: nil) 

     print(urls)

//Set subdirectory with specific name instead of nil if files inside some directory.

您也可以使用paths(forResourcesOfType:inDirectory:) 来获取路径数组。

【讨论】:

仅供参考 - 请注意,如果您的 Xcode 项目中的文件夹是蓝色而不是黄色,文件只会位于子目录中。 是的,whitebear @rmaddy 正确设置 subdirectory 仅当文件夹颜色为蓝色而不是黄色时。 感谢 Nirav D 并感谢 rmaddy 的建议。 Xcode 组/文件夹系统让我很困惑.... @whitebear 欢迎朋友 :) 它适用于子目录,但是可以使用组而不是子目录吗???我想选择某个组下的 plist 文件【参考方案2】:

使用 FileManager 中的枚举器:

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

for file in man.enumerator(atPath: path!)! 
    print(file)

【讨论】:

看看所有那些崩溃操作符。 是的,是的,没有包括我关于需要零保护的正常免责声明:) Bundle.urls(forResources...) 无论如何是一个更好的选择。

以上是关于如何获取项目中的plist文件列表的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 INFOPLIST_FILE 名称 iOS

Xcode中的Info.plist字段列表详解

“帮助修复”错误:无法从文件中读取属性列表:info.plist

从python中的列表中获取前25个项目

谷歌驱动器重定向 URI 不匹配以及如何从 ASP.net 核心 2.0 中的谷歌驱动器获取文件列表

需要帮助来快速搜索 iOS 属性列表 (plist) 的价值?