快速访问URL路径时删除字符串的一部分

爱默生

我目前正在尝试在路径“ / Music / Itunes / iTunes Media / Music”中创建歌曲列表,以最终将它们插入Youtube API。我可以访问所有需要的文件。我只是在寻找一种清理打印项目的方法,如下所示,专辑名称位于“歌曲”名称的前面。

var test = try FileManager.default.subpathsOfDirectory (atPath: completePath)

let list = test.joined(separator: "\n")
// Attempt to delete album name  
print(list.replacingOccurrences(of: "/\(String())/" , with: ""))   

此打印

J. Cole/2014 Forest Hills Drive
J. Cole/2014 Forest Hills Drive/12 Love Yourz.mp3
J. Cole/2014 Forest Hills Drive/06 Fire Squad.mp3
J. Cole/2014 Forest Hills Drive/09 No Role Modelz.mp3

有没有办法删除那部分?为了返回示例“ J. Cole 12 Love Yourz.mp3”

查尔斯·斯特斯特卡

在Swift中,您应该使用URLs而不是路径来引用文件。因此,而不是subpathsOfDirectory,用FileManagerenumerator(at:includingPropertiesForKeys:options:errorHandler:)此方法返回的枚举数将为URL目录中的每个子路径提供一个不幸的是,DirectoryEnumerator它的界面有点Objective-C-ish,这意味着它的元素Any并非URL您所期望的那样,但是您仍然可以URL像这样访问它的:

for each in enumerator {
    guard let eachURL = each as? URL, eachURL.pathExtension == "mp3" else { continue }

    let trackName = eachURL.lastPathComponent
    let albumName = eachURL.deletingLastPathComponent().deletingLastPathComponent().lastPathComponent

    print("\(albumName) \(trackName)")
}

然后,您可以使用URLlastPathComponent属性仅获取文件名,而无需获取其余路径。对表示唱片集的目录执行相同的操作,然后可以将唱片集名称和曲目名称缝合在一起以获得所需的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章