Освобождение ресурсов - тег artwork файла TagLib - PullRequest
2 голосов
/ 14 октября 2011

В моем приложении на 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 - полный путь к mp3, artwork - полный путь к обложке.

После присвоения тегу Pictures я использую:

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

Теперь мне также интересно переместить файл с изображением в другое место на компьютере.

Для этого я использую:

File.Move(pathArtOrig, pathArtNew);

pathArtOrig - текущий полный путь к файлу обложки, а pathArtNew - полный путь к месту его перемещения.

Проблема в том, чточто я получаю следующую ошибку:

IOException был обработан.Процесс не может получить доступ к файлу, потому что он используется другим процессом.

Я просто не имею понятия «освободить» ресурс используемого файла художественного произведения (это может быть файл .jpg).Как видите, я пытался использовать Dispose () выше, но это не помогло.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 15 октября 2011

Извините, похоже, я только что обнаружил ошибку.

В одном месте моего кода перед созданием тега я загружал файл в папку для картинок.Он хранится в растровом изображении.

Теперь я избавляюсь () от этого растрового изображения перед созданием тега, и все в порядке.Теперь файл можно перемещать.

...