2

在我的 C# 应用程序中,我正在为 mp3 文件创建标签。为此,我使用 TagLib 库/扩展。

标签之一是艺术品。我可以使用以下方法成功地将艺术品添加到 mp3 的标签中:

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

path是 mp3artwork的完整路径,是艺术作品的完整路径。

分配给图片标签后,我使用:

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

现在,将图稿文件移动到计算机上的另一个位置也符合我的兴趣。

为此,我使用:

File.Move(pathArtOrig, pathArtNew);

pathArtOrig是艺术品文件的当前完整路径,并且pathArtNew是将要移动到的完整路径。

问题是我收到以下错误:

IOException 未处理。该进程无法访问该文件,因为它正被另一个进程使用。

我根本不知道要“释放”所使用的艺术品文件的资源(它可能是 .jpg 文件)。如您所见,我尝试使用上面的 Dispose() ,但这并没有奏效。

任何帮助表示赞赏。

4

1 回答 1

1

抱歉,我似乎只是自己发现了错误。

在我的代码中,在创建标签之前,我将文件加载到图片框中。它存储在位图中。

现在我在创建标签之前 Dispose() 这个位图,一切都很好。现在可以移动文件。

于 2011-10-14T21:38:05.363 回答