4

iTunes 具有轨道的旧位置(不再存在的文件路径)!在他们面前。我知道这一点,因为如果您右键单击轨道!在它前面并选择 GetInfo(然后选择 no,不要找到它)。在摘要选项卡下,它有一个部分显示歌曲的路径(不工作)。当我尝试使用 iTumes COM 获取轨道位置时,IITFileOrCDTrack.location 返回空字符串。那么,如何从 Getinfo --> Summary 选项卡中获取此“位置”值?

以下是我目前尝试获取轨道位置的方式(使用 C#)。我的整个 iTunes 库有 10 首歌曲,它们都指向错误的文件位置,所以我选择哪首歌曲并不重要。

iTunesApp itunes = new iTunesApp(); 
IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist;
IITTrackCollection tracks = mainLibrary.Tracks;
IITFileOrCDTrack currTrack;
currTrack = tracks[5] as IITFileOrCDTrack;
Console.WriteLine(currTrack.location) //output is blank.
4

1 回答 1

1

找到文件时,会显示“位置”值,C:\...但是当找不到文件时,它会显示file:\\C:\...在 iTunes 中,并且从代码中,您可以使用 Location 属性访问该位置(可能是一个错误,使用您的代码 - 大写“位置”中的“L”)

从 SDK 文档:

HRESULT Location ([out, retval] BSTR *location)

返回此轨道表示的文件的完整路径。

参数: location 返回此轨道表示的文件的完整路径。

返回值:

S_OK 手术成功。
S_FALSE 无法检索该位置(例如,预期位置不存在文件)。
E_POINTER 位置是NULL
ITUNES_E_OBJECTDELETED 该曲目已被删除。
E_FAIL 一个意料之外的问题发生了。

我能够重现这一点(即,当找不到文件时,在 iTunes 中查看“where”值,并从 IITFileOrCDTrack.Location 返回 null。我不认为它是 除非它没有记录,否则不可能如果找不到实际文件,则返回该值。

于 2011-02-23T14:50:50.190 回答