我正在使用 taglib# 输入 mp3 标题和艺术家姓名作为从文件名解析的元数据。为此,我实质上是遍历文件名列表、解析名称、创建 taglib 文件、更改标签,然后保存和处理 taglib 文件。奇怪的是,在我的情况下,我注意到在第一个文件成功更改后,标签可以作为输入的字符串似乎有一个最大长度。
这是我现在正在运行的一个小规模示例。
foreach (string path in files)
{
using (TagLib.File f = TagLib.File.Create(path))
{
f.Tag.Title = "000000000011111111112222222222333333333344444444445555555555"
f.Save();
}
}
作为输出,第一个文件有正确的标题字段:
000000000011111111112222222222333333333344444444445555555555
但是它之后的每个文件只有一部分:
000000000011111111112222222222
您可以在资源管理器中看到它:
无论修改哪个字段,结果都是一样的。此外,在 taglib 文件上显式调用 Dispose() 不会改变任何内容。为什么会这样?