2017-12-08 52 views
1

私のmp3ファイルのすべてのタグを再作成する小さなツールを作成しようとしています。 彼らは混乱しているので、私はすべてのタグを削除し、正しい値で再作成したいと思います。TagLib-Sharp - ファイルの再タグ付け

タグ値を設定できないという問題が発生しました。 しかし、問題は、私はタグを設定できないことです。私は次のコードを持っています:

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(); 

ファイルが正しく読み込まれています。タグが削除されます。 しかし、その設定後、タグは機能しません。タグ内の文字列はまだnullです。 "tagLibFile.SetTag(Tag t)"のようなメソッドは見えません。タグはゲッターとしてしか利用できませんが、セッターは利用できません。

その後、iveはいくつかのフレームを追加しましたが、そのイデントはタグを設定する効果があります。たぶんそれは間違った方法を使用して? あなたは私を助けてくれることを願っています!

敬具、

SyLuS私はタグを削除した後、TagLibの#(あるいはTagLibのは、そのことについては)情報を保持する新しいタグを作成していないことを推測している

答えて

1

を。ただし、ファイルを開くときにはチェックを行い、ファイルにファイルがない場合は新しいタグを作成します。

回避策として、タグを削除した後にファイルを保存してから、新しいタグ情報を追加することができます。

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(); 

これが役立ちます。さらなる質問がある場合、または上記のコードがまだ機能しない場合は、お気軽にコメントしてください。 :)

関連する問題