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

Posted

技术标签:

【中文标题】使用 Swift 获取最后一个目录中的文件名和完整目录路径【英文标题】:Get the name of file(s) within last directory and the full directory path using Swift 【发布时间】:2021-12-31 13:31:47 【问题描述】:

我正在尝试获取给定路径的最后一个目录中的文件名(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)

这似乎会遍历路径的每个级别,直到结束。很好,但是除了连接上面的每个对象之外,获取完整路径(包括文件名)的最佳方法是什么?

所有建议都欣然接受。谢谢!

【问题讨论】:

不清楚是什么问题。您是丢弃 URL 并将其转换为 lastPathComponent 的人。如果您想要整个 URL,请不要这样做。 — 另外,请始终显示真实代码。将您的实际代码复制并粘贴到问题中。不要显示只是直接输入问题的废话。 会的,谢谢! 【参考方案1】:

由于element 是URL,如果您对完整路径名而不是last component 感兴趣,请选择:

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

或者只是

    var nextObject = element.path  // or even relativePath 

【讨论】:

【参考方案2】:

谢谢你,@Christophe (+1)

我还发现 enumerator(at:includingPropertiesForKeys:options:errorHandler:) 的 documentation 提供了一个很好的示例,可以通过使用额外的 resource keys(例如名称、路径等)根据我的目的进行修改。

【讨论】:

以上是关于使用 Swift 获取最后一个目录中的文件名和完整目录路径的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Swift 中的远程目录中获取所有图像?

如何使用 Swift 3 Playground 读取 Resources 目录中的文本文件?

如何从shell脚本中的另一个目录获取文件的完整路径? [复制]

如何在 Swift 中读取视频文件的第一个和最后一个 64kb

在 Swift 4 中获取文档目录下的所有“*.xxx”文件

获取linux中文件的最后修改时间