swift - 获取目录下多个文件的内容
问题描述
我需要从多个plist
文件中获取内容并将它们放入一个文件dictionary
中,然后显示在tableView
使用此代码,我可以手动获取文件的每个路径和内容,但我需要能够为目录中的所有 plist 文件执行此操作,而不仅仅是这些预定义的文件。
func getFiles() {
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let path = documentDirectory.appending("/MainFolder/File1.plist")
let path1 = documentDirectory.appending("/MainFolder/File2.plist")
let path2 = documentDirectory.appending("/MainFolder/File3.plist")
tableViewData = [NSDictionary(contentsOfFile: path) as! [String : String], NSDictionary(contentsOfFile: path1) as! [String : String], NSDictionary(contentsOfFile: path2) as! [String : String]]
print(tableViewData)
}
我在我的显示tableViewData
中为我tableView
提供了每个文件的内容在它自己的行中。
我猜我可能需要一个文件url数组,.plist
然后通过某种方式将每个文件的内容放入[String : String]
字典中。
我是 swift 新手,任何帮助或更好的方法都会很棒
解决方案
您可以阅读所有 plist 并对其进行迭代,将其内容添加到 1 个数组或已保存的字典中。
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: documentDirectory, includingPropertiesForKeys: nil, options: [])
let allPlistFiles = directoryContents.filter{ $0.pathExtension == "plist" }
var aPlistArray = []
for aPlist in allPlistFiles {
aPlistArray.append(NSDictionary(contentsOfFile: path) as! [String : String])
}
} catch {
print(error)
}
推荐阅读
- java - 来自 System.in 的 Java UnitTest 多命令行输入
- python - sklearn.neural_networks.MLPRegressor - 无法计算准确度分数
- python - 根据我的时区,我没有时间
- python - 从 python 脚本获取和设置核读取节点的分辨率
- c++ - Mac CMake C++ SDL2 架构 x86_64 的重复符号
- r - 在闪亮的单独情节图之间链接图例
- python - Pandas - 用另一列中的字符串填充 NaN
- php - 如何构建一个对象数组,以便获得格式正确的 JSON 输出以匹配所需的内容?
- django - Docker 编写 nginx 配置设置以在端口 8000 上广播
- go - 在结构中打印结构映射