C#调用iTunes接口如何从媒体库获取曲目的完整路径与文件名
实现方案
你可以将IITTrack实例转换为IITFileOrCDTrack类型,读取其Location属性即可拿到对应音乐文件的完整本地路径,修改后的代码如下:
using System.IO; using iTunesLib; iTunesAppClass iTunesAppClass = new iTunesAppClass(); IITSourceCollection sources = iTunesAppClass.Sources; foreach (IITSource src in sources) { if (src.Name == "Library") { IITPlaylistCollection pls = src.Playlists; foreach (IITPlaylist p in pls) { if (p.Kind == ITPlaylistKind.ITPlaylistKindUser) { var pname = p.Name; IITTrackCollection tracks = p.Tracks; foreach (IITTrack track in tracks) { var songName = track.Name; // 仅本地文件类型轨道可获取路径 if (track is IITFileOrCDTrack localTrack && !string.IsNullOrEmpty(localTrack.Location)) { // 完整文件路径 string fullFilePath = localTrack.Location; // 单独提取文件名 string fileName = Path.GetFileName(fullFilePath); } } } } } }
注意事项
- 仅本地导入、已下载到本地的Apple Music曲目能返回有效路径,流媒体未下载曲目、CD音轨、云端未缓存曲目返回空值,建议加空判断避免报错
- 运行代码前需要确保系统已正确安装iTunes客户端,且项目已正确引用iTunes COM组件
- 路径相关工具方法需要引入
System.IO命名空间
内容的提问来源于stack exchange,提问作者FLICKER
相关产品推荐
相关产品推荐

