首页 > 解决方案 > 获取目录下多个文件的内容

问题描述

我需要从多个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 新手,任何帮助或更好的方法都会很棒

标签: swiftmacosnstableview

解决方案


您可以阅读所有 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)
}

推荐阅读