使用 Swift 获取最后一个目录中的文件名和完整目录路径

Get the name of file(s) within last directory and the full directory path using Swift

我正在尝试获取给定路径最后一个目录中的文件名(JSON 格式,但保存时没有扩展名)。每个文件都在应用程序的数据容器中使用自己唯一的子路径保存。

我还需要获取文件的完整路径,包括文件名。

根据我的阅读,我认为使用 URL 比使用字符串路径更好。

我试过以下代码:

do {
    let enumerator = FileManager.default.enumerator(at: filePath, includingPropertiesForKeys: nil)
    while let element = enumerator?.nextObject() as? URL {
    var nexObject = element.lastPathComponent
        print(nextObject)
    }
} catch let error {
    print(error.localizedDescription)
}

这似乎确实遍历了路径的每一层,直到结束。很好,但是除了将上面的每个对象串联起来之外,获取完整路径(包括文件名)的最佳方法是什么?

所有建议都非常感谢。谢谢!

因为 element 是一个 URL, if you're interested in the full path name rather than the last component,只需要:

    var nextObject = element.absoluteURL  // instead of .lastPathComponent

或者只是

    var nextObject = element.path  // or even relativePath 

谢谢@Christophe (+1)

我也发现 documentation for enumerator(at:includingPropertiesForKeys:options:errorHandler:) provides a nice example, which can be modifed for my purposes by using additional resource keys(例如名称、路径等)。