如何从库中获取曲目文件名

How to get track filename from library

我正在尝试读取所有播放列表和每个播放列表中的音乐文件。

这是我的 C# 代码:

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 name = track.Name;
                    string filename = "???";   // How to get the file name of the mp3 file?
                }
            }
    }
}

所以,在最后一行,我得到 Track.Name,这似乎是歌曲的标题。

如何获取曲目的完整路径和文件名?

您曾在如此古老的图书馆工作过。下面是查找文件名的方法:

foreach (IITTrack track in tracks)
{
    var name = track.Name;
    if (track.Kind == ITTrackKind.ITTrackKindFile) { // it is a file track
        // Cast it as file track
        IITFileOrCDTrack fileTrack = (IITFileOrCDTrack)track;
        // Check if it's a valid path
        if (!String.IsNullOrEmpty(fileTrack.Location)) {
            string filepath = fileTrack.Location; // here you go
        }
    }
}

我实际上并没有 运行 上面的代码(我在 2007 年编写的代码片段中发现了类似的代码)。你可以自己试试。