我正在使用macOS Swift-app,我需要执行文件夹/文件遍历。在这个特定的例子中,我需要删除文件路径的第一部分...即,如果文件的路径为MyFolder/MyItem
,我需要将其读作MyItem
用于显示目的。
根据this answer中的回复,我编写了以下代码:
if fileString.hasPrefix("/") {
fileString.remove(at: fileString.startIndex)
print(fileString)
}
...我删除了fileString
的任何部分,包括" /"。
但是,这似乎并没有在实践中发挥作用.... MyFile/MyItem
没有变为MyItem
,它仍然是MyFile/MyItem
。
答案 0 :(得分:2)
您可以找到第一个(或最后一个)斜杠字符并删除 从字符串的开头到包括的所有内容 那个分隔符,例如:
var fileString = "My Volume/My Folder/My Item"
if let r = fileString.range(of: "/", options: .backwards) {
fileString.removeSubrange(..<r.upperBound)
}
print(fileString) // My Item
但是如果你打算提取文件名(最后一个路径组件) 为了显示,有一个专用的方法:
let fileString = "My Volume/My Folder/My Item"
let displayName = FileManager.default.displayName(atPath: fileString)
print(displayName) // My Item
另一种方法是
let fileString = "My Volume/My Folder/My Item"
let baseName = URL(fileURLWithPath: fileString).lastPathComponent
print(baseName) // My Item
与前一个类似,但没有本地化 文件名。