2

私の C# アプリケーションでは、mp3 ファイルのタグを作成しています。このために、TagLib ライブラリ/拡張機能を使用します。

タグの 1 つはアートワークです。次を使用して、アートワークを mp3 のタグに正常に追加できます。

TagLib.File f = TagLib.File.Create(path);
IPicture[] pictures = new IPicture[1];
pictures[0] = new Picture(artwork);
f.Tag.Pictures = pictures;

pathは mp3 へartworkのフル パス、 はアートワークへのフル パスです。

Pictures タグに割り当てた後、次を使用します。

f.Save();
f.Dispose();

ここで、アートワーク ファイルをコンピューター上の別の場所に移動することにも関心があります。

このために私は使用します:

File.Move(pathArtOrig, pathArtNew);

pathArtOrigアートワーク ファイルの現在のフル パスであり、pathArtNew移動先のフル パスです。

問題は、次のエラーが発生することです。

IOException が処理されませんでした。ファイルが別のプロセスによって使用されているため、プロセスはファイルにアクセスできません。

使用されているアートワーク ファイルのリソースを「解放」する方法がわかりません (.jpg ファイルの可能性があります)。ご覧のとおり、上記の Dispose() を試しましたが、うまくいきません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

申し訳ありませんが、自分でエラーを見つけたようです。

コードの 1 か所で、タグを作成する前に、ファイルをピクチャボックスにロードしていました。ビットマップに格納されます。

タグを作成する前にこの Bitmap を Dispose() すると、問題ありません。ファイルを移動できるようになりました。

于 2011-10-14T21:38:05.363 に答える