我目前正在尝试在路径“ / 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中,您应该使用URL
s而不是路径来引用文件。因此,而不是subpathsOfDirectory
,用FileManager
的enumerator(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)")
}
然后,您可以使用URL
的lastPathComponent
属性仅获取文件名,而无需获取其余路径。对表示唱片集的目录执行相同的操作,然后可以将唱片集名称和曲目名称缝合在一起以获得所需的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句