这样做我遇到了无法设置标签值的问题。 但问题是,我无法设置标签。我有以下代码:
File tagLibFile = File.Create(filePath);
tagLibFile.RemoveTags(TagLib.TagTypes.AllTags);
tagLibFile.Tag.Album = album;
tagLibFile.Tag.AlbumArtists = artists.ToArray();
tagLibFile.Tag.Track = track;
tagLibFile.Tag.Title = title;
tagLibFile.Tag.TitleSort = titleSort;
...
tagLibFile.Save();
正确读出文件。然后删除标签。 但在那之后,标签不起作用。标记内的字符串仍为空。 我还没有看到像“tagLibFile.SetTag(Tag t)”这样的方法。标签仅作为吸气剂使用,但不能作为定位器使用。
之后我添加了一些Frames,但是doesent具有设置标签的效果。也许我用错误的方式使用它? 希望你能帮我解决这个问题!
亲切的问候,
SyLuS
答案 0 :(得分:1)
我猜测删除标签后,TagLib#(或TagLib,就此而言)不会创建新标签来保存信息。但是,在打开文件时,它可能会进行一些检查,如果文件没有,则会创建一个新标记。
因此,作为一种变通方法,您可以在删除标记后保存文件一次,然后继续添加新的标记信息。
File tagLibFile = File.Create(filePath);
tagLibFile.RemoveTags(TagLib.TagTypes.AllTags);
// Save the file once, so that Taglib Sharp takes care of creating any necessary tags when opening the file next time and dispose the file reference:
tagLibFile.Save();
tagLibFile.Dispose();
然后,您可以在再次打开文件后继续编辑标记:
tagLibFile = File.Create(filePath);
tagLibFile.Tag.Album = album;
tagLibFile.Tag.AlbumArtists = artists.ToArray();
tagLibFile.Tag.Track = track;
tagLibFile.Tag.Title = title;
tagLibFile.Tag.TitleSort = titleSort;
// ...
在完成编辑标签后,请务必再次保存文件:
tagLibFile.Save();
我希望这会有所帮助。如果您有任何其他问题,或上述代码仍然无效,请随时发表评论。 :)功能