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