使用 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 3 Playground 读取 Resources 目录中的文本文件?
如何从shell脚本中的另一个目录获取文件的完整路径? [复制]
如何在 Swift 中读取视频文件的第一个和最后一个 64kb