【问题标题】:How to get track filename from library如何从库中获取曲目文件名
【发布时间】:2021-11-30 07:59:21
【问题描述】:

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

这是我的 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,这似乎是歌曲的标题。

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

【问题讨论】:

  • 你用的是什么库?也许你应该检查 IITTrack 类型的文档

标签: c# itunes-sdk


【解决方案1】:

你在这样一个古老的图书馆工作。以下是查找文件名的方法:

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 年编写的 sn-p 中发现了类似的代码)。你可以自己试试。

【讨论】:

  • 工作得很好。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
相关资源
最近更新 更多